2011-10-31 118 views
0

我使用jQuery AJAX張貼的形式內容,這樣服務器form.serialize Ajax請求(模擬複選框提交):添加對象

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

我要送一組數據,就好像它來了從一個複選框。

我不想在提交之前動態地創建隱藏的複選框並將其追加()到表單中。我沒有看到可以幫助我的形式jQuery的API中的任何其他方法。 有什麼幫助嗎?

謝謝, 克里斯。

回答

0

我意識到這篇文章很舊,可能與我的情況完全不一樣 - 但是當我遇到類似的問題時,它在搜索中出現,所以在這裏。在我的情況下,服務器期望有一個特定的數據格式: $_POST['Category'] = Array([id]=>value)所以我使用嵌套對象格式化數據,通過Ajax POST提交jQuery。在這個例子中,我們從DOM元素中獲取一些類別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 */} 
});