使用AngularJS将输入限制为输入字段上的数字
发布时间:2020-12-17 07:57:00 所属栏目:安全 来源:网络整理
导读:我试图在下面的字段中将输入限制为数字 Postal Code:input type="text" id="zipCode1" name="zipCode1" size="4" maxlength="5" ng-model="zipCode1" ng-change="myNumbers(zipCode1)" /input type="text" id="zipCode2" name="zipCode2" size="3" maxlength
我试图在下面的字段中将输入限制为数字
Postal Code: <input type="text" id="zipCode1" name="zipCode1" size="4" maxlength="5" ng-model="zipCode1" ng-change="myNumbers(zipCode1)" /> <input type="text" id="zipCode2" name="zipCode2" size="3" maxlength="4" ng-model="zipCode2" ng-change="myNumbers(zipCode2)" /> 它不起作用 $scope.myNumbers = function(fieldName){ var tN = fieldName.replace(/[^d]/g,""); if(tN != fieldName) fieldName = tN }; 它适用于下面的代码,但更改了两个字段 $scope.$watch('myNumbers',function() { var tN = $scope.myNumbers.replace(/[^d]/g,""); if(tN != $scope.myNumbers) $scope.myNumbers = tN; }) 需要更改用户键入的输入字段的值,而不是两者
使用此处的指令:
https://stackoverflow.com/a/19675023/149060而不是ng-change功能.复制在这里以便于参考:
angular.module('app'). directive('onlyDigits',function () { return { restrict: 'A',require: '?ngModel',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.$viewValue = digits; ngModel.$render(); return digits; }); } }; }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |