1

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

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

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

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

解决方案:改用 serialiazeArray - 如

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

3 回答 3

8

容易:使用serializeArray()而不是serialize()

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

于 2012-08-07T06:05:46.710 回答
3

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

于 2012-06-17T02:45:37.080 回答
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()with的示例$.post

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

于 2012-06-17T02:55:22.407 回答