0

我正在构建一个简单的表单,我试图从复选框中传递值......

<div class="checkboxclass">
<input name="form[paperdesign][]" value="150" id="paperdesign0" type="checkbox">
<label for="paperdesign0">text 1</label>
<input name="form[paperdesign][]" value="100" id="paperdesign1" type="checkbox">
<label for="paperdesign1">text 2</label>
<input name="form[paperdesign][]" value="50" id="paperdesign2" type="checkbox">
<label for="paperdesign2">text 3</label>
<input name="form[paperdesign][]" value="50" id="paperdesign3" type="checkbox">
<label for="paperdesign3">text 4</label>
</div>

...使用此功能:

function calculate(){
    var sela=document.querySelectorAll("div.checkboxclass input");
    resultsel.value=0;
    resultsel.value=parseInt(resultsel.value);
    for(i=0;i<sela.length;i++)
        resultsel.value=parseInt(resultsel.value)+parseInt(sela[i].value);
}

它工作正常,除了它同时传递所有值。

可以来帮我解决这个问题吗?

提前谢谢了

多姆

4

2 回答 2

1

如果我理解这个问题,您的意思是您只想包含已检查项目的值。在这种情况下,您应该能够使用:checked选择器:

var sela=document.querySelectorAll("div.checkboxclass input:checked");
于 2010-11-09T17:01:00.073 回答
1

我认为您希望它只计算选定的复选框。

您必须检查复选框选择:

function calculate(){
    var sela=document.querySelectorAll("div.checkboxclass input");
    var total = 0;
    for(i=0;i<sela.length;i++) {
        if(sela[i].checked)
            total += parseInt(sela[i].value);
    }
    resultsel.value = total;
}
于 2010-11-09T17:06:27.133 回答