jquery.load()来POST一个表单的所有元素,而不必指定POST的内容

Joe*_* M. 9 ajax jquery

我有一个现有的HTML表单,我正在尝试更新以使用jQuery.load().如何将表单的所有元素作为POST参数传递,而不是必须指定要传递的参数?

表单元素由脚本动态创建,元素的数量以及元素的名称在很大程度上变化,以至于指定通过AJAX/POST传递哪些参数是不切实际的.是否有一种简单的方法可以传递给jQuery.load()<form></form>标签中的所有元素,就像传统上提交表单一样?

Ros*_*one 28

简单:当您收集表单数据并将其作为第二个参数传递给load(),使用serializeArray(data)和不使用时serialize(data),正如当前接受的答案建议的那样.

serialize()返回一个字符串,然后serializeArray()返回一个对象. load()如果数据是对象,则发送POST.如果data是字符串,则load()发送GET.


der*_*aug 19

您可以使用.serialize()序列化表单的所有输入来提交jQuery.load()调用.

$('form').serialize()
Run Code Online (Sandbox Code Playgroud)

例如,使用jQuery.load()(只有GET,除非你传递一个数据对象,然后POST)

$.load(
    'postTo.php', 
    $('#yourFormId').serialize(), 
    complete(responseText, textStatus, XMLHttpRequest){
        //do your processing after the fact
}))
Run Code Online (Sandbox Code Playgroud)

使用,, jQuery.ajax()您可以进行POST

$.ajax({
    'url': 'postTo.php',
    'type': 'POST',
    'data': $('#yourFormId').serialize(),
    'success': function(result){
         //process here
    }
});
Run Code Online (Sandbox Code Playgroud)

请参阅:http://api.jquery.com/jQuery.ajax/