【问题标题】:count values of checked checkbox计算选中复选框的值
【发布时间】:2012-01-20 02:04:22
【问题描述】:

我想获取所有选中复选框的总值。我试过的是这样的:

$("input[type=checkbox]:checked").each(function() {
            total_modules += parseFloat($(this).val());
        });
        $("#total_modules").text(total_modules.toFixed(2));

这不起作用。

我希望有人可以帮助我。

提前致谢!

PS:我修好了,这是我的新代码:

function calculation()
    {
    $("input[type=checkbox]:checked").each(function() {
            total_modules += parseFloat($(this).val());
        });
        $("#total_modules").text(total_modules.toFixed(2)); 
    }
    calculation();

    $("input[type=checkbox]").click(function()
    {
        calculation();
    });

谢谢大家

【问题讨论】:

  • 您可以使用本机代码 `this.value',而不是使用 $(this).val()

标签: jquery


【解决方案1】:

您可以通过$("input[type=checkbox]:checked").length 获取选中复选框的数量。

看看这个jsFiddle

【讨论】:

    【解决方案2】:

    它的使用非常简单

     $("input[type=checkbox]:checked").length;
    

    参考http://www.codeunit.co.za/2010/08/18/jquery-count-number-of-checkboxes-checked-on-a-page/

    【讨论】:

    • 谢谢,但我不需要复选框的数量,而是复选框值的总数。
    • alert($("input[type=checkbox]:checked").length);会给你勾选标记的复选框的数量
    【解决方案3】:

    使用长度属性

    var checkcount = $(":checkbox:checked").length;
    

    【讨论】:

      【解决方案4】:

      会不会是小数点的分隔符不对?我认为它需要是一个 .让 parseFloat 正常工作。

      还需要用

      检查解析后的值是否为数字
      isNaN(parsedValue)
      

      【讨论】:

        【解决方案5】:

        下面的代码应该适用于 jQuery 版本 1.7.1

        JQUERY

        $("#test").click(function() {
        var tot = 0;
            $.each($("input[type=checkbox]:checked"), function (k, v){
            var val =parseFloat($(this).val());
            tot = parseFloat(tot + val);   
            })
                alert(tot);
        });
        

        HTML

        <input type="checkbox" value ="10.2"/>
        <input type="checkbox" value ="10.2"/>
        <input type="checkbox" value ="10.2"/>
        <input type="checkbox" value ="10.2"/>
        
        <input type="buttoN" id="test" value="click me"/>
        

        【讨论】:

          【解决方案6】:

          你可以这样做

          $(function(){
              var checkboxes = $("input:checkbox");
              checkboxes.change(function(){
                  var total = 0.0;
          
                  checkboxes.filter(":checked").each(function(){
                      total += parseFloat(this.value);
                  });
          
                  alert (total)
              });
          });
          

          查看working demo

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-06-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-07-01
            • 1970-01-01
            • 2021-10-07
            相关资源
            最近更新 更多