developer tip

jQuery-유효성 검사 규칙을 동적으로 추가하는 방법

copycodes 2020. 12. 10. 20:41
반응형

jQuery-유효성 검사 규칙을 동적으로 추가하는 방법


일부 동적 컨트롤에 유효성 검사 규칙을 동적으로 추가하려고합니다.

$("input[id*=Hours]").rules("add", "required");

그러나이 줄은 다음과 같은 오류를 제공합니다.

$ .data (element.form, "validator")가 null입니다.

validate 함수를 사용하여 정적 인 방식으로 규칙을 정의하면 제대로 작동합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

고마워, 저스틴


다음 .validate()과 같은 방법으로 규칙을 추가하려면 먼저 호출 해야합니다.

$("#myForm").validate(); //sets up the validator
$("input[id*=Hours]").rules("add", "required");

.validate()문서는 여기 추천 광고에 대한이야, 좋은 가이드 .rules("add", option):

지정된 규칙을 추가하고 첫 번째로 일치하는 요소에 대한 모든 규칙을 반환합니다. 부모 양식의 유효성을 검사해야합니다. 즉, $("form").validate()먼저 호출됩니다.


동적으로 생성 된 모든 요소의 유효성을 검사하려면 이러한 각 요소에 특수 클래스를 추가하고 다음과 같이 each () 함수를 사용할 수 있습니다.

$("#DivIdContainer .classToValidate").each(function () {
    $(this).rules('add', {
        required: true
    });
});

먼저를 호출 $("#myForm").validate();했는지 확인하고 유효성 검사 규칙을 추가하기 전에 동적 컨트롤이 DOM에 추가되었는지 확인합니다.


문서 는 다음과 같이 말합니다.

지정된 규칙을 추가하고 첫 번째로 일치하는 요소에 대한 모든 규칙을 반환합니다. 부모 양식의 유효성을 검사해야합니다. 즉, $ ( "form"). validate ()가 먼저 호출됩니다.

네가 했니? 오류 메시지 종류는 그렇지 않았 음을 나타냅니다.


jquery validate가 동적으로 추가 된 항목에 대한 유효성 검사를 자동 선택하도록하려면 아래와 같이 전체 양식에서 유효성 검사를 제거하고 추가하기 만하면됩니다.

//remove validations on entire form
$("#yourFormId")
    .removeData("validator")
    .removeData("unobtrusiveValidation");

//Simply add it again
$.validator
    .unobtrusive
    .parse("#yourFormId");

참고 URL : https://stackoverflow.com/questions/3033910/jquery-how-to-dynamically-add-a-validation-rule

반응형