我試圖序列化多個複選框將具有相同名稱的窗體上的複選框。將複選框轉換爲JSON數組
<input name="mycheckbox" type="checkbox" value="A"/>A</br>
<input name="mycheckbox" type="checkbox" value="B"/>B</br>
使用如下的serializeArray一切都很好。如果兩個甲& B被檢查JSON.stringify正確地表示JSON作爲數組:
{"mycheckbox":["A","B"]}
然而,如果我只有一個檢查JSON不再表示爲一個數組:
{"mycheckbox":"A"}
在我正在處理的RESTful後端中,我需要始終以數組的形式傳遞。有沒有強制stringify將其表示爲數組的方法?
var jsonData = JSON.stringify($('form').serializeObject());
$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};