Javascript 将多个复选框添加到一起
我已经让代码正常工作了,但是我想知道为什么只有当有多个Javascript 将多个复选框添加到一起,javascript,checkbox,Javascript,Checkbox,我已经让代码正常工作了,但是我想知道为什么只有当有多个复选框命名相同的东西时,它才有效。我希望每个复选框都有自己的名称,但仍要加在一起。任何帮助都将不胜感激。这是我的密码: function checkTotal() { document.listForm.total.value = ''; var sum = 0; for (i=0;i<document.listForm.choicea.length;i++) { if (document.lis
复选框
命名相同的东西时,它才有效。我希望每个复选框都有自己的名称,但仍要加在一起。任何帮助都将不胜感激。这是我的密码:
function checkTotal() {
document.listForm.total.value = '';
var sum = 0;
for (i=0;i<document.listForm.choicea.length;i++) {
if (document.listForm.choicea[i].checked) {
sum = sum + parseInt(document.listForm.choicea[i].value);
}
if (document.listForm.choiceb[i].checked) {
sum = sum + parseInt(document.listForm.choiceb[i].value);
}
}
document.listForm.total.value = sum;
}
<form name="listForm">
<input type="checkbox" name="choicea" value="2" onchange="checkTotal()"/>2<br/>
<input type="checkbox" name="choicea" value="5" onchange="checkTotal()"/>5<br/>
<input type="checkbox" name="choiceb" value="10" onchange="checkTotal()"/>10<br/>
<input type="checkbox" name="choiceb" value="20" onchange="checkTotal()"/>20<br/>
Total: <input type="text" size="2" name="total" value="0"/>
</form>
函数checkTotal(){
document.listForm.total.value='';
var总和=0;
对于(i=0;i),您在每个实例中都使用“CyICEA”/“Couice B”作为数组。如果每个名称中只有一个,它将不是数组。考虑只使用jQuery和输入选择器,而不是使用旧的。如果不是,你可以考虑GETelEntsByTayNeX作为替代。 < P>如果只有一个带有名称的复选框,那么JavaScript绑定将不是一个数组,例如它不会是代码> CyICEA(0)< /代码>它只会是<代码> CyICEA < /P>
您可以为每个项指定相同的类名,并使用getElementsByClassName
(IE9或更高版本、IE8或更低版本将需要一个垫片),它总是返回一个项数组(实际上是a)。您可以为所有每个输入类型设置ID,并使用document.getElementById('checkbox1')访问代码中的输入类型.value+
document.getElementById('checkbox2')`等等