我希望用戶只允許將數字輸入到文本框中。 對於這個我使用下面的代碼:下面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