Не работает jquery submit у формы

не работает jquery submit

Всем привет. Мало времени, но решил описать детскую проблему, которая приключилась со мной сегодня.

В общем делал я антиспам защиту для очередного сайта и нужно было банально закинуть почти готовый код + вызов события .submit() для формы, если условия совпадает и передача данных на сервер, чтоб там проверить поля на спам.

 

В этой краткой статье я покажу вам почему может не работать jquery submit или .submit(), а также в качестве бонуса покажу пример как делать отправку данных с формы через яваскрипт, например по нажатию на ссылку.

 

Вернемся к моей проблеме.

Код javascript, для вызова события submit у формы, простой:

(function( $ ) {
$(document).ready(function(){
    $("#submitBTN1").on("click",function(){get_spam_code_in_st($(this)); return false;});
});
function get_spam_code_in_st(XX){
    jQuery.ajax({
          type: 'POST',
          url: '...',
          dataType:'json',
          data:{
              'nonce': '....',
              'action':'...'
          },
          success: function (data) {
              if(data.work!=""){
                  ....
                  XX.closest("form").submit();
              }
          }
        });
}
})(jQuery);

 

Как вы поняли XX.closest("form").submit(); это и есть мой запуск события submit.

Html код тоже стандартный:

<form action="..." method="post">
    <input type="text" value="" name="author" placeholder="Имя"/>
    <input type="text" value="" name="email" placeholder="E-mail"/>
    <textarea placeholder="Сообщение" name="comment"></textarea>
    <input id="submitBTN1" type="submit" name="submit" value="Отправить"/>
</form>

Ничто не предвкушало беды, нооооо ... увы форма не захотела сабмититься, сабмит формы не работает.

Код проверенный по сто раз, все рабочее, но не судьба.

В общем решение проблемы:

надо удалить вот этот код name="submit" у кнопки отправки комментария.

Переделав форму под такой вариант:

<form action="..." method="post">
    <input type="text" value="" name="author" placeholder="Имя"/>
    <input type="text" value="" name="email" placeholder="E-mail"/>
    <textarea placeholder="Сообщение" name="comment"></textarea>
    <input id="submitBTN1" type="submit" value="Отправить"/>
</form>

 

У меня все заработало. Да, и вдогонку хочу сказать, если вы делаете отправку формы по нажатию на ссылку, а в вашей форме параллельно есть кнопка <input type="submit" name="submit" value=""/> , возможно даже скрытая, - то у вас submit также работать не будет 🙂 

Как сделать submit формы на javascript

Как дополнения к этому посту, хочу показать вам маленький код, который покажет вам, как легко и просто сделать отправку формы на яваскрипт.

Хтмл код:

<form action="..." method="post">
    <input type="text" value="" name="author" placeholder="Имя"/>
    <input type="text" value="" name="email" placeholder="E-mail"/>
    <textarea placeholder="Сообщение" name="comment"></textarea>
    <a href="#" id="submtCommSnd"></a>
</form>

JavaScript код на jQuery:

(function( $ ) {
$(document).ready(function(){
    $("#submitBTN1").on("click",function(){$(this).closest("form").submit(); return false;});
});
})(jQuery);

Вот и все. Проблема решена.

Если этот пост был вам полезный – поделитесь им со своими друзьями в соц. сетях:

Комментарии к записи «Не работает jquery submit у формы»:
Сделать заказ
Онлайн помощь по WordPress