Кажется, моему классу присваивается как класс ошибок, так и класс успеха, когда ему должен быть присвоен только класс успеха

#jquery #jquery-validate

#jquery #jquery-validate

Вопрос:

У меня есть форма, которую я пытаюсь проверить, я поместил div вокруг своего input поля и текстового поля, которые должны быть обязательными, но когда я ввожу что-то в поле и отправляю, оно не будет отправляться, потому что есть другие вещи, которые не выбраны, но это дает мне div класс ошибок и успеха, когдаэто должен быть только успех…

jquery проверяет код:

 $("#frm_enter").validate({
    ignore: 'hidden:not(input[name='terms,privacy,iam18'])',
    onkeyup: false,
    errorElement: "div",
    rules: {
        code:{required: true,},
        terms:{required: true,},
        privacy:{required: true},
        iam18:{required: true}
    },
    messages: {
        code:{required: "Code is required"},
        terms:{required: "Please accept terms and conditions"},
        privacy:{required: "Please accept privacy notice"},
        iam18:{required: "Please verify you are 18 or older"}
    },
    errorPlacement: function(error, element) {
        error.appendTo( '#v_'   element.attr('id')   '.frmvalidate' );
          $('#v_'   element.attr('id')   '.frmvalidate').parent().addClass("error1");
         console.log("is this working");
    },
    success: function(label) {
        $("#submit").prop('disabled', false);
        console.log(label);
         $(label).parent().parent().addClass("valid1")
    }
});
 

HTML:

 <div class = "input_validate">                                  
<div class="board_question">
Code :                                  
</div>                          
<div class="board_input">                               
<input type="text" maxlength="11" id="code" name="code" />                          
</div>                              
<p id="v_code" class="frmvalidate"></p>                             
</div>
 

Я надеялся, что это даст моему input_validate классу класс valid1 , но это дает мне и valid1 то, и другое, и error1

Ответ №1:

Вы неправильно используете опции этого плагина. Вы не должны использовать errorPlacement и success для добавления / удаления каких-либо классов. Эти две функции не срабатывают, когда вы этого ожидаете. errorPlacement срабатывает только для размещения ошибки в макете, затем плагин переключает видимость метки во время проверки. success срабатывает, когда элемент является полностью допустимым, но его предназначение — использовать метку сообщения проверки, когда элемент является допустимым, а не просто скрывать его.

Чтобы автоматически добавлять / удалять допустимые / недопустимые классы во время проверки, вы должны использовать только highlight unhighlight функции and для этого.

Я предлагаю вам ознакомиться с полной документацией.