두 개의 지시문 (특성)이있는 입력 요소가 있습니다. 입력이 유효하지 않은 경우 오류 클래스를 추가합니다.요소의 여러 지시문이 작동하지 않습니다.
<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');
}
})
}
}
};
있습니다하지만 내가 무엇을 기대 할 didnt는. 하나의 지시문 만 작동합니다! 속성
알파을 제거하려고 시도했을 때
이 필요합니다. 이제이 작동합니다. 누군가가 왜 이렇게 작동하는지 말해 줄 수 있습니까? 당신이 내장 된 지침과 컨트롤러 기능을 달성 할 수 원하는 것은
당신이 알파 지시어에 예를 들어, "오류"클래스 이름을 변경 시도 해 봤나 : 나는 이것을 피하기 위해 추가 조건을 추가? alpha 지시어가 필수 지시어 또는 viceversa의 "error"클래스를 덮어 쓰는 것일 수 있습니다. – Ragnar
왜 작동하지 않는지 알지 못합니다.하지만 여기서는 바퀴를 다시 만들고 있습니다. 내장 입력 지시문과 내장 된 ngModelController/formController를 더 자세히 살펴보십시오. – gkalpak
유효성 검사를 통과 한 경우와 실패한 경우에 지침의 'keyup'처리기가 서로 충돌하지 않습니까? – pdoherty926