Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将多个复选框添加到一起_Javascript_Checkbox - Fatal编程技术网

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')`等等