[英]A validation directive that reacts to another value works in 1.0.x but not in 1.2.x
[英]How to enable angularjs 1.0.x validation directive for inputs with trailing/leading spaces?
我有一個指令,可使用regexp驗證文本輸入。 我想禁止用戶輸入空格字符。 該指令對文本內的空格非常有效,但是當用戶輸入尾隨空格或前導空格時,不會觸發驗證。 我知道angular自動修剪文本輸入,但是我不能使用ng-trim =“ false”指令,因為我的angularjs版本是1.0.6。 有沒有辦法解決這個問題?
我已經嘗試過如何禁用AngularJS中的輸入修剪功能的建議? 適用於angular 1.0.x,並且部分起作用-驗證會在用戶使用“ ctrl + v”或鼠標粘貼包含尾隨空格的值時調用,但鍵盤輸入仍不會觸發驗證。
自定義ngTrim指令,部分有效:
app.directive('ngTrim', function() {
return {
require: 'ngModel',
priority: 300,
link: function(scope, iElem, iAttrs, ngModel) {
if (iAttrs.ngTrim === 'false') {
ngModel.$parsers.unshift(function() {
return iElem.val();
});
}
}
}
});
如果您唯一想做的就是禁止輸入空格,則可以將輸入偵聽器直接附加到元素,並在輸入空格時將其刪除,如下所示:
iElem.bind('input', (eventData) => {
if (eventData.data == ' ') {
iElem.val(iElem.val().replace(/\s/g, ''));
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.