jQuery.ajax:如何轻松发送数据?

时间:2012-07-31 23:21:03

标签: javascript ajax jquery

我正在处理的项目中有很多表单。

所有表格几乎都通过AJAX。

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

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

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

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

由于

2 个答案:

答案 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)

使用序列化方法:

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