如何将所选复选框与不同的输入名称相加

时间:2013-10-19 12:54:16

标签: javascript html checkbox running-total

我目前有一系列不同项目的复选框,选中后会修改总计。 JavaScript代码如下。

<script type="text/javascript">
function checkTotal() {
document.listForm.total.value = '';
var sum = 0.00;
for (i=0;i<document.listForm.choice.length;i++) {
if (document.listForm.choice[i].checked) {
sum = sum + parseFloat(document.listForm.choice[i].value);
}
}
document.listForm.total.value = sum.toFixed(2);
}

</script>

此代码工作正常,但所有复选框都具有相同的输入名称“choice”。我需要更改它,以便每个输入名称都不同,例如choice1,choice2,choice3等。如何更改JavaScript以添加所有不同名称的复选框,而不是仅添加名为“choice”的复选框。

感谢任何帮助,良好的HTML和CSS知识,但非常基本的JavaScript。感谢。

2 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

function checkTotal() {
    document.listForm.total.value = '';
    var sum = 0.00;
    var i, inputs, input;

    inputs = document.getElementsByTagName('input')

    for (i=0;i<inputs.length;i++) {
        input = inputs[i]
        if (input.type === 'checkbox' && input.name.substr(0, 6) === 'choice') {
            sum = sum + parseFloat(input.value);
        }
    }
    document.listForm.total.value = sum.toFixed(2);
}

这未经过测试,但代码应通过DOM查看所有输入元素。然后它将遍历它们并检查那些也是名称以“choice”开头的复选框。然后它会将复选框的值添加到总和中。

像jQuery这样的库让这类东西变得容易多了。

答案 1 :(得分:0)

使用jQuery,下面的代码片段将添加页面上的所有复选框值。 我没有测试过这个,但它应该可以工作。

$("input[type=checkbox]").each(function(){
   if(this.checked){
     sum = sum+this.val();
   }
});