jQuery sum复选框值

时间:2016-03-21 16:18:23

标签: jquery checkbox input

我需要计算所有复选框的总和,并根据选择更新总数,这里是html:

<input type="checkbox" id="basic_single" name="basic_single" value="400">
<input type="checkbox" id="basic_double" name="basic_double" value="680">
.
.
.
<input type="text" name="total" value="" size="30" id="total">

这是脚本

   $('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, 会有更多的复选框,而不仅仅是这两个

2 个答案:

答案 0 :(得分:3)

您只需要考虑检查的项目来计算总数。为此,您只能定位要检查的元素并迭代每个循环以添加它们的值以计算总和。以下示例不涉及单个元素的硬编码。

client = Savon.client(wsdl: my_wsdl, proxy: "http://proxy-0-0-0-0.proximo.io", basic_auth: ["proxy-user", "proxy-secret"])

示例:https://jsfiddle.net/8p3ftmuh/2/

答案 1 :(得分:0)

您可以使用.not()从计算中排除#total元素值,.get()Array.prototype.reduce()+运算符来转换value { {1}}至:checkbox

&#13;
&#13;
Number
&#13;
$(":checkbox").change(function(event) {
  $("#total").val(function() {
    return $(event.target.tagName).not("[type=text]")
    .get().reduce(function(a, b) {
        return +a.value + +b.value
    })
  })
})
&#13;
&#13;
&#13;