无法提醒或存储serializeArray

时间:2014-02-21 07:14:12

标签: jquery json

我制作了一个代码,其中我获取所选复选框的名称和值,并将其序列化为数组形式。我能够通过堆栈中找到的一些帮助来做到这一点,但我陷入了一个我无法将该数组存储在新变量中或提醒它的点。它唯一能做的就是它在控制台上可见,如果它返回到控制台。我已从以下代码中删除了我想要存储最终结果的行var eg = JSON.stringify(obj)。但正如我所说它不起作用。

var data = $('input[type=checkbox]').serializeArray(),obj = {};

for(var i = 0; i < data.length; i++){
   obj[data[i].name] = obj[data[i].name] || [];
   obj[data[i].name].push(data[i].value);
}    
// your JSON string
return console.log(JSON.stringify(obj));

我的输出也是

{"territories[nl]":["1"],"territories[px]":["1"],"territories[tu]":["1"]}

但我希望结果像

{"territories[nl]":"1","territories[px]":"1","territories[tu]":"1"}

["1"]但不是"1"中的值不同。

1 个答案:

答案 0 :(得分:1)

试试这个

var data = $('input[type=checkbox]').serializeArray(),obj = {};

for(var i = 0; i < data.length; i++){
   obj[data[i].name] = data[i].value || "";
}    
// your JSON string
return console.log(JSON.stringify(obj));