我有10个复选框。如果我勾选了复选框,那么该复选框的值将被添加到数组中;如果我取消勾选该复选框,则相应的复选框值将从数组中删除。请问有人能够回答这个问题吗?
这个必须完全按照这种方式工作吗?在需要时从选中的复选框生成值数组会更容易。
像这样:
// Pass reference to a parent element of all checkboxes, for example the form
function getCheckedBoxes(parent) {
var result = [];
var inputs = parent.getElementsByTagName("input");
for (var i = 0, len = inputs.length; i < len; i++) {
var cb = inputs[i];
if (cb.type.toLowerCase() === "checkbox" && cb.checked)
result.push(cb.value);
}
return result;
}
尝试使用 JavaScript 的关联数组,例如:
a['title'] = 'Mr.';
a["fname'] = 'Brad';
a['lname'] = 'Johnson';
delete a['title'];
很简单... 当用户勾选时,它会以其ID作为键添加,当取消勾选时,它会删除。
function getChecked(ename)
{
field = document.getElementsByName(ename);
var topub = new Array();
for (i = 0; i < field.length; i++)
if(field[i].checked == true)
{
topub.push(field[i].id);
}
return topub;
}
以上是我在这种情况下使用的方法。我将所有复选框的名称保持相同,然后将名称传递给此函数,它会返回一个数组。因此,您可以用返回的数组替换您的数组。例如:
var yourOldArray = new Array();<br>
yourOldArray = getChecked("name attribute of checkboxes");
你需要确保所有复选框的name属性具有相同的值。
array.splice(index,howmany,element1,.....,elementX)
。在这里查看更多关于splice的信息:http://www.w3schools.com/jsref/jsref_splice.asp。