我正在构建一个简单的表单,我试图从复选框传递值...
<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
答案 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;
}