Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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_Forms_Checkbox - Fatal编程技术网

Javascript 显示所有选中复选框的值之和

Javascript 显示所有选中复选框的值之和,javascript,forms,checkbox,Javascript,Forms,Checkbox,我正在创建一个HTML表单,希望通过JS实现以下功能,请提供我应该使用的代码 1.添加所有选中复选框的值,并将其显示为总计 2.添加限制用户必须选择至少2个复选框。 这是我的密码 <input class="iput" type="checkbox" name="E33" value="4500" /> <input class="iput" type="checkbox" name="E34" value="3000" /> <input class="iput"

我正在创建一个HTML表单,希望通过JS实现以下功能,请提供我应该使用的代码

1.添加所有选中复选框的值,并将其显示为总计

2.添加限制用户必须选择至少2个复选框。 这是我的密码

<input class="iput" type="checkbox" name="E33" value="4500" />
<input class="iput" type="checkbox" name="E34" value="3000" />
<input class="iput" type="checkbox" name="E36" value="6000" />

<p>Your Total is = </p>

你的总数是=


此外,代码应该是这样的,如果我添加或删除复选框,我就不必修改JS代码了

假设您只有checkbox类型的输入

var checkboxes = document.getElementsByTagName('input');
var sum = 0;
checkboxes.forEach(function(checkbox){
  if (checkbox.checked) {
    sum += checkbox.value;
  }
});
console.log(sum); // your sum

使用
document.getElementsByClassName
获取所有复选框。这将提供一个集合。使用
扩展运算符,您可以将其转换为数组,并使用
forEach
在其上循环并添加
更改
事件侦听器。并更新其
change
上的总数。复选框的值为string,因此使用
parseInt
将其转换为数字

让总数=0;
[…document.getElementsByClassName('iput')].forEach(函数(项){
项目.添加的事件列表器('change',函数(e){
如果(例如,选中目标){
总计+=parseInt(例如,target.value,10)
}否则{
总计-=parseInt(例如,target.value,10)
}
document.getElementById('total')。innerHTML=total
})
})


你的总数是=

我想你在阅读时遗漏了什么。因此,这不是一个代码编写服务,我们帮助编写代码,因此,请自己努力,如果不起作用,请回来。为什么有人会否决所有答案?我否决了一些,因为他们没有回答问题,一些因为他们没有任何解释,而其他人显然也这样做了。如果他们仍然很好,我可能会否决他们,因为当一个用户(OP)来要求编写代码,并且没有表现出他们自己的努力,这不应该被鼓励,而是告诉他们在发布之前做预期的事情,这样我们就可以对所问的问题(和发布的答案)有一个体面的标准。@brk感谢它的工作!