我有一个问题我无法解决,也许你们可以帮助我!
我有几个复选框。我需要点击按钮时检查的值。这到目前为止工作。现在我需要使用此信息构建某种对象/数组。
Construct最终必须这样:
[{"ID-Number":"1","ID-Data":"ABCD1234"},{"ID-Number":"2","ID-Data":"DEFG5678"}]
" ABCD1234"和" DEFG5678"是已选中复选框的值。 " ID-Number"每个选中的复选框条目应从1开始计算,从1开始。
我想我可能必须首先构建一个数组,然后为每个数组构建一个数组" entry"然后将这些数组添加到主数组?
我的代码看起来像这样:
listToSubmit = [];
i = "0";
$("input[name=mycheckboxgroup]:checked").each(function () {
newEntry = [];
newEntry['ID-Number'] = i++;
newEntry['ID-Data'] = $(this).val();
listToSumbit.push(newEntry);
});
console.log(listToSubmit)
感谢您帮助我们开展此工作!
答案 0 :(得分:2)
您的代码存在一些问题:
listToSumbit.push(newEntry)
,应该是listToSubmit.push(newEntry)
i = "0"
开始有点奇怪,可能会导致问题 - 请尝试使用i = 0
。有了拼写错误,我强烈建议您在IDE中使用一个好的linter - eslint很棒。它将有助于直接捕获这些错误。
答案 1 :(得分:0)
要获得正确的索引,您可以循环所有复选框:
listToSubmit = []
elements = document.querySelectorAll("input[name=mycheckboxgroup]")
for (i = 0; i < elements.length; i++)
if (elements[i].checked)
listToSubmit.push( { 'ID-Number' : i + 1 + '', 'ID-Data' : elements[i].value } )
console.log(JSON.stringify(listToSubmit))
&#13;
<input type='checkbox' name='mycheckboxgroup' value='ABCD1234' checked \>
<input type='checkbox' name='mycheckboxgroup' value='DEFG5678' checked \>
<input type='checkbox' name='mycheckboxgroup' value='XYZ90' \>
&#13;