jquery表单使用load方法序列化

时间:2012-06-17 02:37:26

标签: jquery

我想知道如何使用jQuery LOAD函数为表单提交POST数据,发送表单的序列化数据。

所以,举例来说,我该怎么做:

$('someElement').click(function(){
    var formData = $('formHere').serialize();
    $('anotherElement').load('somePage', formData);
)};

目前,这不起作用 - 如果不发布数据,而是发送GET请求。我不想开始使用$ .post方法(因为我只是不想!),我在这里做错了吗?

解决方案:改为使用serialiazeArray - 如

var formData = $('formHere').serializeArray()

3 个答案:

答案 0 :(得分:7)

轻松:使用serializeArray()而不是serialize()

serialize()返回一个字符串,而serializeArray()返回一个对象。如果数据是对象,则load()发送POST。如果数据是字符串,load()会发送GET。

答案 1 :(得分:3)

根据jQuery docs for .load(),如果数据(在这种情况下formData是一个对象),似乎使用了POST方法。否则它使用GET。但是,docs for .serialize()表示它返回一个字符串。因此总是GET。

答案 2 :(得分:0)

如果您必须有帖子,请使用$.post,否则您需要使用$ .ajaxSettings配置全局ajax。 $.load$.get()$.getJSON()& $.post$.ajax的便捷包装,其中一些选项已经过处理,以尽量减少所需的代码。

 $('someElement').click(function(){
    var formData = $('formHere').serialize();
    $.post('somePage', formData, function(data){
        $(selector).html(data);                                
    });
});

API包含$(form).serialize()$.post

一起使用的示例

http://api.jquery.com/jQuery.post/