使用Javascript传递复选框中的值

时间:2010-11-09 16:54:11

标签: javascript forms css-selectors selectors-api

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

<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);
}

除了它同时传递所有值之外,它还可以正常工作。

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

许多人提前致谢

的Dom

2 个答案:

答案 0 :(得分:1)

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

var sela=document.querySelectorAll("div.checkboxclass input:checked");

答案 1 :(得分: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;
}