Средство проверки jQuery не проверяет форму, если входные данные не заполнены требуемыми значениями и не отправлены один раз

#javascript #jquery

#javascript #jquery

Вопрос:

Я пытаюсь проверить свою форму перед отправкой с помощью jQuery validator, но проблема в том, что форма не проверяется, если я не нажму отправить один раз (с требуемой длиной), а затем она начнет проверку. Он не проверяет, даже если я нажимаю «Отправить», не заполняя входные данные минимальной длиной, он также не проверяет. вот мой html:

  <form class="newRegister-formBox basketForm" id="confirmPhoneNumberForm" autocomplete="off">
                    <input autocomplete="off" type="text" name="code" id="code" class="form-control persianDigitInput" placeholder="">    
                <div class="newRegister-button">
                    <button type="button" id="send-confirm-phone-number-code" class="animateBtn greenAnimateBtn" >
                        <i class="fa fa-check"></i>
                        confirm
                    </button>
                </div>
    </form>
 

вот мой JS-код, и я использую Backbone JS. Я определил событие onclick кнопки для вызова этой функции:

    sendConfirmPhoneNumberCode: function() {

        var self = this;
        var $form = $("#confirmPhoneNumberForm");

        $("<input />").attr("type", "hidden")
            .attr("name", "PhoneNumber")
            .attr("value", $("input[name='PhoneNumber']").val())
            .appendTo($form);

          $("#confirmPhoneNumberForm").validate({
            rules: {
                code: {
                    required: true,
                    minlength: 4
                }
            },
            messages: {
                code: {
                    required: $utils.messages.user.required_ConfirmPhoneNumberCode,
                    minlength: $utils.messages.user.minlength_ConfirmPhoneNumberCode
                }
            }
        });
 

Ответ №1:

$("#confirmPhoneNumberForm").validate включает проверку при ее вызове. Вместо того, чтобы вызывать его в обработчике click событий, вызовите его в начале.

Комментарии:

1. Если это решило вашу проблему, пожалуйста, нажмите галочку под кнопками голосования, чтобы принять ее.