我正在处理的项目中有很多表单。
所有表格几乎都通过AJAX。
$.ajax({
type: "GET",
cache: false,
url: $(this).attr("action"),
data: ???,
success: function(msg){
}
});
我希望能够拦截这些POST,而是通过AJAX运行它们。
代码被写入一个将被重用的方法。
所以问题是:如何选择将要传递的所有数据,将其转换为查询字符串并将其插入data: ???,
部分。
由于
答案 0 :(得分: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 ) {
});
答案 1 :(得分:1)
使用序列化方法: