复选框组计算值
Checkbox group calculate value
我有几个复选框组,每个组包含3个复选框(1,X,2)。我想给每个组分配一个100%的值(33%到组中的每个复选框)。该值将根据选中了多少个复选框而移动。如果三个都被选中,那么他们每个人将拥有33%,但如果两个被选中,他们每个人将拥有50%,如果只有一个被选中,那么这个人将拥有100%。到目前为止,我只能详细说明复选框的长度,而不是值。我不太擅长Javascript,因此我还没有找到任何好的方法来做到这一点。我有一个带有硬编码值的JSFIDDLE:
JSFIDDLE
<td>
<input type="checkbox" name="1_1" class="checkbox" checked id="11" value="on" >
<label for="11">1</label>
<span id="Result"></span>
</td>
<td>
<input type="checkbox" name="1_X" class="checkbox"checked id="1X" value="on">
<label for="1X">X</label>
<span>33%</span>
</td>
<td>
<input type="checkbox" name="1_2" class="checkbox" checked id="12" value="on">
<label for="12">2</label>
<span>33%</span>
</td>
window.onload = function () {
var input = document.querySelector('input[type=checkbox]');
function check() {
var p = input.checked ? "100" : "0";
document.getElementById('result').innerHTML = p+'%';
}
input.onchange = check;
check();
}
为解决您的问题,我使用Jquery和添加处理程序的复选框和计数计数输入检查
$("input[type=checkbox]").click(function(){
var arrayId=$(this).attr("name").split("_");
var numberId=arrayId[0];
var percentage=Math.floor(100/$("input[name*='"+numberId+"_']:checked").length);
console.log(percentage);
$("input[name*='"+numberId+"_']").parent().children("span").html("0%");
$("input[name*='"+numberId+"_']:checked").parent().children("span").html(percentage+"%");
});
JsFiddle链接:https://jsfiddle.net/xc8xt682/3/
如果没有jquery,它只是有点冗长。:) LTastys的答案可能更好,但只是加上我的,因为我在他回答的时候写的。
var cells = Array.prototype.slice.call(document.querySelectorAll('td')),
calculate = function () {
var value = ['100%', '50%', '33%'][cells.filter(function (cell) {
return cell.querySelector('input').checked;
}).length - 1];
cells.forEach(function (cell) {
var span = cell.querySelector('span');
if (cell.querySelector('input').checked) span.textContent = value;
else span.textContent = '0%';
});
};
cells.forEach(function (cell) {
cell.querySelector('input').addEventListener('click', calculate);
});
相关文章:
- Angularjs - 复选框 - 计算多个选定/未选定项目
- 带复选框的数学计算
- 使用javascript选中“计算总数一次”复选框
- Ember.js数组控制器计算属性的复选框
- 嗨,我正试图将我的movieprice数组从复选框值传递给另一个计算选择总数的函数,但我的代码没有;t运行
- 点击可选复选框时如何计算价格(使用贝宝支付表单)
- 多复选框jquery计算
- 计算复选框的总数
- 计算已选中复选框的数量
- 使用隐藏字段值而不是复选框值计算合计
- 使用JavaScript计算Web表中启用的复选框
- 选中了 Javascript 计数复选框,并且不计算另一个复选框
- 我将如何创建一个javaScript函数来计算选中了多少复选框
- 计算 React.js 中的复选框
- 计算在表列中选中的复选框数
- 如何使用 onclick 事件引用按 id 计算选中的复选框
- 使用 each() 选择并计算未选中复选框的长度
- 我们如何计算使用 javascript 在网格视图中选中的复选框数量 asp.net
- 如何在PDF文档中添加javascript来计算复选框的数量,并在文本框区域中输入值
- 使用文档计算复选框数组长度.getElementById在javascript