2012-07-31 65 views
0

我正在处理的项目中有很多表单。jQuery.ajax:我如何轻松发送数据?

所有的表格都经过AJAX。

$.ajax({ 
     type: "GET", 
     cache: false, 
     url: $(this).attr("action"), 
     data: ???, 
     success: function(msg){ 
     } 
    }); 

我希望能够拦截这些文章的,而是通过AJAX运行它们。

代码被写入一个将被重用的方法。

所以问题是:如何选择所有要传递的数据,将其转换为查询字符串并将其插入data: ???,部分。

感谢

+2

所以...你的所有表单都经过AJAX,你想通过AJAX来运行它们吗?另外,请查看'.serialize()' – MrOBrian 2012-07-31 23:24:15

回答

2

你需要拦截submit事件。在您的<form>元素上绑定事件处理程序。遇到时,通过从该事件处理程序中返回false来停止其传播和其默认行为。

现在,您可以在该处理程序中创建您的.ajax()请求。要将表单数据的序列化形式创建为查询字符串,请在该表单上使用jQuerys .serialize()方法。

例如:

$('#myFormId').on('submit', function(event) { 
    $.ajax({ 
     type: "GET", 
     cache: false, 
     url: $(this).attr("action"), 
     data: $(this).serialize(), 
     success: function(msg){ 
     } 
    }); 

    return false; 
}); 

或者只是创建委派的事件,它可以处理所有的形式,像

$(document).on('submit', 'form', function(event) { 
});