Диалог jQuery - отправить форму через ajax? - PullRequest
1 голос
/ 08 марта 2012

Я отображаю большую форму с большим количеством проверок в диалоговом окне jQuery, но теперь мне интересно, есть ли способ получить ее, чтобы после отправки действительной формы она загружалась через Ajax и оставалась вмодальное окно у меня открытое?Не уверен, что в любом случае это можно сделать.

Спасибо!

Ответы [ 4 ]

3 голосов
/ 08 марта 2012

Да, вы должны похитить кнопку отправки, чтобы выполнить ajax GET, передав ему все поля формы, а затем вернуть false;

2 голосов
/ 08 марта 2012

Вы ДОЛЖНЫ проверить этот замечательный плагин jquery формы для ajaxifying ваших форм. Прелесть этого в том, что если вы поместили проверки в атрибут pattern ваших входных данных (что я предпочитаю делать вместо написания фрагментов кода JavaScript для каждого поля ввода), форма будет отправлена ​​только после прохождения каждой проверки. Короче говоря, поведение вашего события отправки по умолчанию изменится, и у вас будет точная копия вашего REQUEST, за исключением того, что на этот раз оно находится в ajax.

1 голос
/ 08 марта 2012

Вот простой простой метод, который просто заменит сам элемент формы при успешной отправке.Я использую метод on (), чтобы код мог работать при загрузке страницы до загрузки формы в ajax

$(document).on('submit', '#formID',function() {
    var $form = $(this);
    var dataToServer = $form.serialize();
    $.post(urlString, dataToServer, function(dataFromServer) {
        /* run ajax sucess code here */

        $form.replaceWith(dataFromServer);


    });
    return false; /* avoid browser submitting form*/

});

РЕДАКТИРОВАТЬ: как вы интегрируете это, будет зависеть также от ваших методов проверки

1 голос
/ 08 марта 2012
$('.mySubmitButton').bind('click', function(e) {
   //do something else
   return false; //stops form from submitting the normal way.
});

или

   $('form#IDofForm').submit(function() {
      //do something upon submit
   });

или комбинация обоих, если хотите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...