指令在输入字段上无法正常工作

时间:2016-04-13 20:08:39

标签: angularjs angularjs-directive

我有一个指令,允许用户仅输入字母和数字,如下所示:

app.register.directive('alphaNumericOnlyWithMaximum6Characters', function() {
    return {
        require: 'ngModel',
        link: function(scope, element, attrs, modelCtrl) {
            modelCtrl.$parsers.push(function(inputValue) {
                if (inputValue == undefined) return '';
                var transformedInput = inputValue.replace(/[^0-9a-zA-Z]/g, '');
                if (transformedInput != inputValue) {
                    modelCtrl.$setViewValue(transformedInput);
                    modelCtrl.$render();
                } else if (inputValue.length > 6) {
                    transformedInput = inputValue.substring(0, 6);
                    modelCtrl.$setViewValue(transformedInput);
                    modelCtrl.$render();
                }
                scope.securityToken = transformedInput;
                return;
            });
        }
    };
});

查看:

<input type="text" ng-class="{tokenError: tokenError}" alpha-numeric-only-with-maximum6-characters id="inputToken" name="securityToken" ng-model="securityToken" required autofocus>

我需要在控制器上更新securityToken。例如:令牌编号为123456.

  

当我输入1.令牌未定义。
输入2.令牌是   12.
输入3.令牌未定义。
输入4,令牌为1234.
输入5,令牌未定义。
输入6,令牌为123456.

我不知道为什么有时指令不起作用。请帮我。谢谢!

0 个答案:

没有答案