2010-03-08 67 views

回答

29

你可以看看的serializeArray功能:

$('#form_id').serializeArray() 
+0

非常方便,感謝您對本寶石! – 2013-04-22 17:09:39

76

您是否嘗試過 「serializeArray」?這給你一個名稱和值的數組。你可以把它轉換成一個對象,如果你想:

var paramObj = {}; 
$.each($('#myForm').serializeArray(), function(_, kv) { 
    paramObj[kv.name] = kv.value; 
}); 

(我得檢查一遍,看看有什麼jQuery不會與陣列,我認爲它編碼它們作爲Javascript數組值,但我m不是100%肯定。)

編輯啊不,它沒有設置多值參數作爲數組 - 你得到重複的同名。因此,化妝的對象的代碼應該是這樣的:

var paramObj = {}; 
$.each($('#myForm').serializeArray(), function(_, kv) { 
    if (paramObj.hasOwnProperty(kv.name)) { 
    paramObj[kv.name] = $.makeArray(paramObj[kv.name]); 
    paramObj[kv.name].push(kv.value); 
    } 
    else { 
    paramObj[kv.name] = kv.value; 
    } 
}); 

(或類似的東西,很可能被擠出一點點)

+2

替代方法:http://github.com/macek/jquery-serialize-object – younes0 2014-02-27 09:15:22

相關問題