添加对象到form.serialize ajax请求(模拟复选框提交)

时间:2011-10-31 15:29:36

标签: jquery jqueryform

我正在使用jquery ajax将表单内容发布到服务器,如下所示:

$.ajax({
        type: type,
        dataType: "json",
        url: url,
        data: form.serialize(),
        success: onSuccess
});

我必须发送一个数据数组,好像它来自一个复选框。

我不想动态创建隐藏的复选框,并在提交之前将其附加()到表单。我没有看到jquery api中的任何其他方法可以帮助我。 有什么帮助吗?

谢谢, 克里斯。

1 个答案:

答案 0 :(得分:0)

我意识到这篇文章很老,可能与我的情况不完全一样 - 但是当我遇到一个非常类似的问题时它出现在搜索中,所以现在就是这样。就我而言,服务器期望有一种特定的数据格式: $_POST['Category'] = Array([id]=>value)所以我使用嵌套对象格式化数据,使用jQuery通过Ajax POST提交。在这个例子中,我们从DOM元素中获取一些Category ID,然后在保存数据时将其用作键,以及通过函数派生的值:

var items = {};
var fn = 'Category';
var val = {};
items[fn] = val;
var item;
$("#div.data").each(function(){
    item = $(this).val();
    items.Category[item] = myval();
});
function myval() {
    // get data for the value part
    return data;
}
$.ajax({
    type: 'POST',
    cache: false,
    url: window.location.href,
    data: items,
    success: function(data){/* callback */}
});