If your requirement is to restrict the user input on number and decimal using angularJS then this post will help you in that. If you are using the jQuery then you can visit this post.
Let’s get started
Step 1 – Prerequisites
https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.9/angular.js
Step 2 – HTML Code
<input name="NoOfContracts" allow-Decimal-Numbers type="text" id="NoOfContracts" />
<input name="Price" allow-Numbers type="text" id="Price" />
Step 3 – angularJS code
Only Numeric
var app = angular.module('App', []);
app.directive('allowNumbers', function () {
return {
restrict: "A",
link: function (scope, element, attr) {
element.bind('input', function () {
var position = this.selectionStart - 1;
//remove all but number
var fixed = this.value.replace(/[^0-9]/g, '');
if (this.value !== fixed) {
this.value = fixed;
this.selectionStart = position;
this.selectionEnd = position;
}
});
}
}
});
Decimal
app.directive('allowDecimalNumbers', function () {
return {
restrict: "A",
link: function (scope, element, attr) {
element.bind('input', function () {
var position = this.selectionStart - 1;
//remove all but number and .
var fixed = this.value.replace(/[^0-9\.]/g, '');
if (fixed.charAt(0) === '.') //can't start with .
fixed = fixed.slice(1);
var pos = fixed.indexOf(".") + 1;
if (pos >= 0) //avoid more than one .
fixed = fixed.substr(0, pos) + fixed.slice(pos).replace('.', '');
if (this.value !== fixed) {
this.value = fixed;
this.selectionStart = position;
this.selectionEnd = position;
}
});
}
}
});
No comments:
Post a Comment