почему форма jquery не отправляется при первом нажатии

avatar
Coder Me
8 апреля 2018 в 11:54
208
1
0

У меня есть одно всплывающее модальное окно, которое после проверки отправляется на страницу ajax. Проверка и отправка работают отлично. Но единственная проблема в том, что при первом щелчке не отправляется форма или проверка. При втором щелчке все работает отлично.

Код:

<script>
      $(function () {

        $('form').on('submit', function (e) {

          e.preventDefault();

          $('#gen-bar-form').validate({
                ignore: [],
                rules: { 
                        firstName: {
                            required: true
                        },
                        editor: {

                            required: true
                        }
                },

          submitHandler: function(form) {

             $("#loader-bg").css("visibility", "visible");

          $.ajax({
            type: 'post',
            url: 'action/file.php',
            data: $('form').serialize(),
            success: function (data) {
            var GenTokRet = JSON.parse(data);
            $("#gen-msg").html("<p>"+GenTokRet+"<p>");
            $("#loader-bg").css("visibility", "hidden");  

            }
          });

          }

          }); 

        });

      });
    </script>
Источник
Andam
8 апреля 2018 в 11:56
0

сделайте какой-нибудь console.log() в вашем js-коде, посмотрите, в какой строке он перестает работать, если все работает, проверьте вкладку вашей сети в инструментах разработчика, посмотрите, отправлен ли пакет или нет

Coder Me
8 апреля 2018 в 12:09
0

когда я сделал console.log() до $('#gen-bar-form').validate, он работает. после функции проверки также работает console.log(). При первом нажатии посылка не отправляется. Но по второму клику посылка отправляется.

Andam
8 апреля 2018 в 12:12
0

вы пытались поместить console.log() в обратный вызов функции проверки

Ответы (1)

avatar
Tj Thouhid
8 апреля 2018 в 12:07
1

Вы поступили неправильно, потому что вы используете функцию предотвращения по умолчанию для остановки формы, хотя проверка jQuery автоматически прекратит отправку формы, пока она не станет действительной. поэтому просто введите функцию подтверждения в функции отправки, которая не нужна

Coder Me
8 апреля 2018 в 12:12
0

Прости,. я не понял тебя

Coder Me
8 апреля 2018 в 12:17
1

Понятно. Я удаляю $('form').on('submit', function (e) { } . Большое спасибо