<!DOCTYPE html>
<html ng-app='myApp'>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.min.js"></script>
<script src="script.js"></script>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="style.css">
</head>
<body ng-controller='Ctrl'>
<div class="row">
<div class="col-md-6">
Amount: <input type="text" ng-model="amount" limit="10" only-digits amount-limit />
</div>
</div>
</body>
</html>
// Code goes here
var myApp = angular.module('myApp', []);
myApp.controller('Ctrl', function($scope) {
// alert();
});
myApp.directive('onlyDigits', function() {
return {
restrict: 'A',
require: '?ngModel',
link: function(scope, element, attrs, ctrl) {
ctrl.$parsers.push(function(input) {
if(input === undefined) {
return '';
}
var output = input.replace(/[^0-9]/g, '');
if(output !== input) {
ctrl.$setViewValue(output);
ctrl.$render();
}
return output;
});
}
}
});
myApp.directive('amountLimit', function() {
return {
restrict: 'A',
require: '?ngModel',
link: function(scope, element, attrs, ctrl)
{
var limit = parseInt(attrs.limit);
element.bind('keypress', function(event) {
if(element[0].value.length >= limit) {
event.preventDefault();
}
});
}
}
});
/* Styles go here */