2010-09-03 3 views
0

У меня слушатель событий:Как отправить форму с помощью AJAX?

$('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); 

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

ответ

0

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

var form = $(this).closest('form'); 
$.post(form.attr('action'), form.serialize(), function(data) { 
    alert("The response was: " + data); 
}); 
0

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

$.ajax({ 
    type: "POST", 
    url: "some.php", 
    data: data: "bar="+$("#bar").val()+"&foo=bar", 
    success: function(msg){ 
    alert("Data Saved: " + msg); 
    } 
});