Как запустить код Jquery после отправки формы - PullRequest
0 голосов
/ 23 ноября 2018

Привет всем, у меня есть HTML-форма, и я хочу запустить код JQuery после успешной отправки формы, я использовал Laravel, что я должен сделать ??

1 Ответ

0 голосов
/ 23 ноября 2018

Если вы используете ajax, вы можете использовать preventDefault(), чтобы форма не отправлялась «традиционно».После успешного выполнения ajax вы можете поместить свою логику в функцию успеха.

например,

$("form").submit(function(e){
  e.preventDefault();
  $.ajax({
       method: 'POST' //assume its a post method
       url: '{{url(cats)}}', //the route endpoint
       data: data //data to be sent
       success: function(response) { 
         // logic goes here, it means form submission is successful
       },
       error: function(e){
         // error has occured
         console.log(e)
       }
   });
});

Убедитесь, что в элементе формы установлено действие на хэштег иудалить метод.Таким образом, он не выполняется традиционно.

например

<form action="#">

Зачем использовать этот подход?

Если вы отправляете форму традиционно, она будетобновите страницу, что означает, что ваш JS на стороне клиента не будет выполнен!Ajax предназначен для асинхронного HTTP-запроса.

Не забудьте

Если вы используете HTTP-методы , отличные от GET , добавьте CSRF TOKEN в заголовки.Вот как вы настраиваете это перед вызовами ajax.

<meta name="csrf-token" content="{{ csrf_token() }}"> //add to head section 

 //js - before your ajax function, put in script section
$.ajaxSetup({
headers: {
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});

Удачи!


Ссылка:

https://api.jquery.com/event.preventdefault/

https://api.jquery.com/jQuery.ajax/

https://laravel.com/docs/5.7/csrf

...