<!DOCTYPE html>
<html lang="en" ng-app="form-example1">
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-animate.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-sanitize.js"></script>
<script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-2.5.0.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body ng-controller="DemoCtrl">
<form name="form" class="css-form container" novalidate="">
<div>
<h1>Form with array named input:</h1>
<label>
Size (integer 0 - 10):
<input type="number" ng-model="size[0]" name="size[0]" min="0" max="10" integer="" />
{{size[0]}}</label>
<br />
<span ng-show="form['size[0]'].$error.integer">The value is not a valid integer!</span>
<span ng-show="form['size[0]'].$error.min || form['size[0]'].$error.max">
The value must be in range 0 to 10!</span>
</div>
<br />
<div>
<h1>ng-repeat dynamic:</h1>
<div ng-repeat="v in arr">
<label>Item {{$index + 1}}</label>
<input type="number" id="item{{$index}}" name="item[{{$index}}]" placeholder="Item {{$index + 1}}" required="required" ng-model="item[$index]" min="0" max="10" />
<a ng-click="remove($index)" style="text-decoration: none; font-size: 12px;cursor: pointer;">x</a>
<span ng-show="form['item[' + $index + ']'].$error.required">
This item is required
</span>
<span ng-show="form['item[' + $index + ']'].$error.max || form['item[' + $index + ']'].$error.min">
The value must be in range 0 to 10!
</span>
<br />
</div>
<button ng-click="addNewItem()">Add Item</button>
</div>
</form>
</body>
</html>
angular.module('form-example1', ['ngAnimate', 'ngSanitize', 'ui.bootstrap']);
angular.module('form-example1').controller('DemoCtrl', function ($scope) {
$scope.today = function() {
$scope.dt = new Date();
};
$scope.today();
$scope.arr = [];
for(var i = 0; i < 5; i++) {
$scope.arr.push(i);
}
$scope.addNewItem = function(){
$scope.arr.push({num: 0});
}
$scope.remove = function (index) {
$scope.arr.splice(index, 1);
};
$scope.clear = function() {
$scope.dt = null;
};
$scope.inlineOptions = {
customClass: getDayClass,
minDate: new Date(),
showWeeks: true
};
$scope.dateOptions = {
dateDisabled: disabled,
formatYear: 'yy',
maxDate: new Date(2020, 5, 22),
minDate: new Date(),
startingDay: 1
};
// Disable weekend selection
function disabled(data) {
var date = data.date,
mode = data.mode;
return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);
}
$scope.toggleMin = function() {
$scope.inlineOptions.minDate = $scope.inlineOptions.minDate ? null : new Date();
$scope.dateOptions.minDate = $scope.inlineOptions.minDate;
};
$scope.toggleMin();
$scope.open1 = function() {
$scope.popup1.opened = true;
};
$scope.open2 = function() {
$scope.popup2.opened = true;
};
$scope.setDate = function(year, month, day) {
$scope.dt = new Date(year, month, day);
};
$scope.formats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];
$scope.format = $scope.formats[0];
$scope.altInputFormats = ['M!/d!/yyyy'];
$scope.popup1 = {
opened: false
};
$scope.popup2 = {
opened: false
};
var tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
var afterTomorrow = new Date();
afterTomorrow.setDate(tomorrow.getDate() + 1);
$scope.events = [
{
date: tomorrow,
status: 'full'
},
{
date: afterTomorrow,
status: 'partially'
}
];
function getDayClass(data) {
var date = data.date,
mode = data.mode;
if (mode === 'day') {
var dayToCheck = new Date(date).setHours(0,0,0,0);
for (var i = 0; i < $scope.events.length; i++) {
var currentDay = new Date($scope.events[i].date).setHours(0,0,0,0);
if (dayToCheck === currentDay) {
return $scope.events[i].status;
}
}
}
return '';
}
});