我希望用户只允许将数字输入到文本框中。 对于这个我使用下面的代码:下面AngularJS问题只允许将数字输入到文本框中
.directive('digitOnly', [function() {
return {
require: 'ngModel',
scope: {
digitOnly: '=?'
},
link: function (scope, element, attrs, modelCtrl) {
if (scope.digitOnly || scope.digitOnly == undefined) {
modelCtrl.$parsers.push(function (inputValue) {
if (inputValue == undefined) return '';
if (attrs.digitOnly == "false") {
return inputValue;
} else {
var transformedInput = inputValue.replace(/[^0-9]/g, '');
if (transformedInput != inputValue) {
modelCtrl.$setViewValue(transformedInput);
modelCtrl.$render();
}
return transformedInput;
}
});
}
}
};
}])
我输入文本框代码给出:
<input type="text" name="sidNo" class="form-input" placeholder="Enter 5-6 digits"
ng-minlength="5" maxlength="6" ng-model="profInfo.sidNo" required digit-only
ng-pattern="/^[0-9]*$/">
当我输入什么它是工作的罚款。它限制我输入数字除外。
但问题是,当我的ng模型值profInfo.sidNo来自后端像AASS001
那样显示我在文本框上的无效输入错误消息是正确的,但是当我从退格按钮中删除此值时,删除所有值在单键退格键和输入两个零像00
所以请帮我解决这个问题。
我正在使用AngularJS。
你到底要什么固定的吗?输入做它所需要的,它删除所有无效的字符。你在问如何让无效字符留下来,完全击败了指令的目的? –
@GiovaniVercauteren我想要清空文本框的值,如果有任何无效的字符只有当我复制粘贴一些字母数字文本时才会发现。 – user3441151