0

我正在从事的项目中有很多表格。

所有的表单几乎都通过 AJAX。

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

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

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

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

谢谢

4

2 回答 2

2

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

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

例如:

$('#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 ) {
});
于 2012-07-31T23:27:20.553 回答
1

使用序列化方法:

http://api.jquery.com/serialize/

于 2012-07-31T23:28:06.513 回答