[英]Angular.JS - only allow up to a certain number value in an input number field
[英]Number only input in angular js
仅数字输入:
HTML
<input type="text" ng-model="employee.age" valid-input
input-pattern="[^0-9]+" placeholder="Enter an age" />
</label>
var app = angular.module('myApp', []);
app.controller('MainCtrl', function($scope) {
});
app.directive('validInput', function() {
return {
require: '?ngModel',
scope: {
"inputPattern": '@'
},
link: function(scope, element, attrs, ngModelCtrl) {
var regexp = null;
if (scope.inputPattern !== undefined) {
regexp = new RegExp(scope.inputPattern, "g");
}
if(!ngModelCtrl) {
return;
}
ngModelCtrl.$parsers.push(function(val) {
if (regexp) {
var clean = val.replace(regexp, '');
if (val !== clean) {
ngModelCtrl.$setViewValue(clean);
ngModelCtrl.$render();
}
return clean;
}
else {
return val;
}
});
element.bind('keypress', function(event) {
if(event.keyCode === 32) {
event.preventDefault();
}
});
}
}});
为什么上面的angularjs代码如此复杂? 要使用数字,可以使用正则表达式使用普通的javascript输入文字。
我不知道为什么这么长的angularjs代码如此出名?
难道比这更简单吗?
请尝试以下方法,希望它可以起作用,包括修剪空白,
<input type="text" ng-model="employee.age"
ng-pattern="^\d+$/|/[^\s*]/" placeholder="Enter an age" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.