나는 판사 보석을 사용하여 간단한 클라이언트 측 valditation을 구축 중입니다.TypeError : this.element는 null, Rails with Judge gem
버튼 클릭 대신 "흐림"에 대한 유효성 검사를 실행하기 전까지 모든 것이 완벽하게 작동했습니다.
스크립트 : 내가 페이지를 다시로드 할 때 Mozzila 파이어 버그에서
var divs = ["advertisement_age","advertisement_weight","advertisement_region_id","advertisement_height","advertisement_name","advertisement_phone_number","Record_Start_Time",
"Record_End_Time","Record_Start_Time2","Record_End_Time2","advertisement_description", "advertisement_description_ru", "advertisement_terms_of_service"];
var arrayLength = divs.length;
var error_count =0;
for (var i = 0; i < arrayLength; i++) {
$(document.getElementById(divs[i])).blur(function(){
judge.validate(document.getElementById(divs[i]), { // This line causes error
valid: function(element) {
element.style.border = '1px solid green';
},
invalid: function(element, messages) {
element.style.border = '1px solid red';
// alert(messages.join(','));
}
});
});
}
오류 메시지가 없습니다. 흐림 이벤트가 발생하면 오류가 표시됩니다.
오류 메시지 : 대신 해당 배열이 유효한 경우 최초의 초 document.getElementById(divs[i])
에 충돌하는 이유
TypeError: this.element is null
this.attrValidators = root.JSON.parse(this.element.getAttribute('data-validate')...
이해가 안?
제안 사항?
감사
고맙습니다. 나는 이것에 대해 더 많은 평판을 줄 수 있었으면 좋겠다. – Edgars
내 기쁨 :-) – DiegoSalazar
핸들러에서'$ (document) .getElementById (divs [i])'대신'this'를 사용하는 것이 더 쉬울까요? 또한 현재 논리는 많은 핸들러를 생성 할 것이므로 이벤트를 위임하는 것이 더 효율적입니다. – BroiSatse