jQuery sum复选框值
我需要计算所有复选框的总和,并根据选择更新总数这里是html:
. . .
这是脚本
$('input:checkbox').change(function () { var total = 0; var basic_single = parseInt($('#basic_single:checked').val()); var basic_double = parseInt($('#basic_double:checked').val()); var total = basic_single + basic_double; $("#total").val(total); });
如果两者都被选中它工作正常,但只有一个检查返回NaN,将有更多的复选框,而不仅仅是这两个
您只需要考虑检查的项目来计算总数。 为此,您只能定位已检查的元素并迭代每个循环以添加其值以计算总和。 以下示例不涉及单个元素的硬编码。
$('input:checkbox').change(function () { var total = 0; $('input:checkbox:checked').each(function(){ // iterate through each checked element. total += isNaN(parseInt($(this).val())) ? 0 : parseInt($(this).val()); }); $("#total").val(total); });
示例: https : //jsfiddle.net/8p3ftmuh/2/
您可以使用.not()
从计算中排除#total
元素值, .get()
, Array.prototype.reduce()
, +
运算符将value
为:checkbox
到Number
$(":checkbox").change(function(event) { $("#total").val(function() { return $(event.target.tagName).not("[type=text]") .get().reduce(function(a, b) { return +a.value + +b.value }) }) })