Javascript Angular 1.3-仅将ngMessages用于数字验证
我在表格中使用了ngMessages。我有一个字段,我希望用户只能插入数字。如果用户键入一些非数字的字母,例如非0-9,则字段中不会显示任何内容。 此外,我想使用ng min和ng max来验证插入的值。 所以我创建了一个指令,但为了使用ng min和ng max,我需要使用type=number,这会破坏我的指令行为 这是我表格中的字段:Javascript Angular 1.3-仅将ngMessages用于数字验证,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我在表格中使用了ngMessages。我有一个字段,我希望用户只能插入数字。如果用户键入一些非数字的字母,例如非0-9,则字段中不会显示任何内容。 此外,我想使用ng min和ng max来验证插入的值。 所以我创建了一个指令,但为了使用ng min和ng max,我需要使用type=number,这会破坏我的指令行为 这是我表格中的字段: <div class="field"> <label for="age">insert your age</l
<div class="field">
<label for="age">insert your age</label>
<input name="age"
ng-model="data.age"
ng-minlength="1"
ng-maxlength="2"
ng-min="10"
ng-max="80"
only-digits
type="number"
required/>
<div class="error-messages" ng-messages="userForm.age.$error">
<div ng-message="required">You left the field blank...</div>
<div ng-message="minlength">Your field is too short</div>
<div ng-message="maxlength">Your field is too long</div>
<div ng-message="min">You must be at least 10 years old!</div>
<div ng-message="max">You must be less than 80 years old!</div>
</div>
</div>
可能重复的
angular.module('directives').
directive('onlyDigits', function () {
return {
restrict: 'A',
require: '?ngModel',
scope: {
},
link: function (scope, element, attrs, ngModel) {
if (!ngModel) return;
ngModel.$parsers.unshift(function (inputValue) {
var digits = inputValue.split('').filter(function (s) { return (!isNaN(s) && s != ' '); }).join('');
ngModel.$setViewValue(digits, "");
ngModel.$render();
return digits;
});
}
};
});