Как отправить форму, используя AJAX? - PullRequest
0 голосов
/ 03 сентября 2010

У меня есть прослушиватель событий:

$('button.publish').live('click', function() {
    //enter code here
});

Этот элемент button находится внутри формы.Я знаю, что не могу использовать $(this).submit();, потому что это приведет к обновлению.Я также не могу настроить таргетинг на форму по ее идентификатору, потому что я пытаюсь сделать ее для общего пользования (добавить новости, добавить контакт, добавить ...).

Зная это, я могу использовать действие формы, поскольку оно отличается от другого, но я не знаю, как отправить форму в обработчик событий кнопки, используя AJAX (используя $.post()).

Это правильное использование:

var form = $(this).closest('form');
$.post(form.attr('action'), form.serializeArray(), callback, type);

Или есть лучший способ?

Ответы [ 2 ]

0 голосов
/ 03 сентября 2010

То, что у вас правильно, вы можете использовать .serliaze(), чтобы сохранить несколько шагов на стороне jQuery, например:

var form = $(this).closest('form');
$.post(form.attr('action'), form.serialize(), function(data) {
  alert("The response was: " + data);
});
0 голосов
/ 03 сентября 2010

Я не знаю продвинутого способа, но простой способ - получить данные каждого элемента формы, например, с помощью $ ("# bar"). Val ();быстрый пример:

$.ajax({
   type: "POST",
   url: "some.php",
   data: data: "bar="+$("#bar").val()+"&foo=bar",
   success: function(msg){
     alert( "Data Saved: " + msg );
   }
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...