使用AngularJS将输入限制为输入字段上的数字

前端之家收集整理的这篇文章主要介绍了使用AngularJS将输入限制为输入字段上的数字前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在下面的字段中将输入限制为数字
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;
            });
        }
    };
});
原文链接:https://www.f2er.com/angularjs/143639.html

猜你在找的Angularjs相关文章