我有一個輸入元素,其中有兩個指令(屬性)。如果輸入無效,它會添加一個錯誤類。元素上的多個指令不工作
<input required alpha type="text" name="firstName" ng-model="newUser.firstName" class="form-control" maxlength="30" placeholder="First Name" />
,這些都是我的指令
// SHOWS AN ERROR IF THE INPUT IS EMPTY
directives.required = function() {
return {
restrict: 'A',
link: function(scope, elem, attrs) {
elem.on('keyup', function(event) {
if(elem.val().trim() == '') {
elem.prop('title', 'This input is required!');
elem.addClass('error');
} else {
elem.prop('title', '');
elem.removeClass('error');
}
})
}
}
};
// SHOWS AN ERROR IF THE INPUT CONTAINS NON ALPHA CHARACTERS
directives.alpha = function() {
return {
restrict: 'A',
link: function(scope, elem, attrs) {
var regexp = /^[A-Za-z ñÑ]+$/;
var char;
elem.on('keyup', function(event) {
if(!regexp.test(elem.val())) {
elem.prop('title', 'This input can contain letters only!');
elem.addClass('error');
} else {
elem.prop('title', '');
elem.removeClass('error');
}
})
}
}
};
但它沒有做我的期望。只有一個指令正在工作!當我試圖刪除屬性alpha,需要現在的作品!有人能告訴我爲什麼它會這樣嗎?
您是否嘗試過在阿爾法指令,例如將「錯誤」類的名字?它可能是alpha指令覆蓋所需指令的類「錯誤」或反之亦然 – Ragnar 2014-10-01 17:26:49
我不知道爲什麼它不起作用(我沒有看它),但你正在重新發明輪子在這裏。仔細看看內置的輸入指令和內置的ngModelController/formController。 – gkalpak 2014-10-01 17:27:24
在一次通過驗證和一次失敗的情況下,指令''keyup'處理程序是否會互相破壞? – pdoherty926 2014-10-01 17:34:20