使用ajax提交时获取表单的键值对

时间:2014-07-09 20:00:38

标签: javascript jquery ajax forms

提交表单时,我将阻止默认操作,而是使用POST数据进行ajax调用。如何获取所有数据,以便将其与ajax调用一起传递?

使用post方法正常提交表单元素时,它可以轻松地组合表单中的所有name => value对。不幸的是,现在我正在做ajax,看起来我需要自己组装。我真的不想编写JS来遍历表单并构建我自己的哈希,我假设有一个更简单的jQuery方法或者我没想到的一些行为。

一个表单的JS小提琴示例,我需要所有值。 http://jsfiddle.net/rm9KD/

3 个答案:

答案 0 :(得分:1)

使用jQuery serialize()

$.ajax({ 
        url: url,
        data: $("form").serialize()
    }
);

由于您没有提供具体代码,这只是您填写

的示例

答案 1 :(得分:0)

jQuery提供了一个serializeArray函数,它将表单数据序列化为一个数组。然后,您可以获取结果数组并从中创建数据对象。

var arrayData = $('#myForm').serializeArray(), 
    data = {}, 
    i = 0;
for(; i < arrayData.length; i++) {
    data[arrayData[i].name] = arrayData[i].value;
}

或者,jQuery提供了serialize函数,它提供了表单数据的序列化字符串。

var data = $('#myForm').serialize();

答案 2 :(得分:0)

http://jsfiddle.net/WfrM4/

$(document).ready(function () {
    $('form').submit(function (e) {
        // Dont trigger a page load on submit.
        e.preventDefault();

        // Get all the values of the form???
        var form_data = $('form[name="my_awesome_form"]').serialize()

        // Make an ajax call
        $.ajax({

            url: "/ajax_form_receiver",
            data: form_data
        });
    });
});