Jquery 如何使用AJAX提交表单?

Jquery 如何使用AJAX提交表单?,jquery,ajax,forms,Jquery,Ajax,Forms,我有一个事件侦听器: $('button.publish').live('click', function() { //enter code here }); 此按钮元素位于表单中。我知道我不能使用$(this).submit(),因为它将导致刷新。我也不能通过它的ID来确定表单的目标,因为我正在尝试将它用于一般用途(添加新闻、添加联系人、添加…) 知道了这一点,我可以使用表单的操作,因为它们彼此不同,但我不知道如何使用AJAX(使用$.post())在按钮事件侦听器中提交表单 这是正

我有一个事件侦听器:

$('button.publish').live('click', function() {
    //enter code here
});
按钮
元素位于表单中。我知道我不能使用
$(this).submit(),因为它将导致刷新。我也不能通过它的ID来确定表单的目标,因为我正在尝试将它用于一般用途(添加新闻、添加联系人、添加…)

知道了这一点,我可以使用表单的操作,因为它们彼此不同,但我不知道如何使用AJAX(使用
$.post()
)在按钮事件侦听器中提交表单

这是正确的用法吗:

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

或者有更好的方法吗?

我不知道高级方法,但一个简单的方法是获取每个表单元素的数据,如$(“#bar”).val();快速示例:

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

您所拥有的是正确的,您可以使用它在jQuery端保存一些步骤,如下所示:

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