我有一个指令,允许用户仅输入字母和数字,如下所示:
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.
我不知道为什么有时指令不起作用。请帮我。谢谢!