Jquery如何计算来自不同div的复选框

时间:2014-03-20 16:19:27

标签: javascript jquery html css checkbox

我在计算不同div中的复选框时遇到问题。如果每个div中至少检查了一个选中的复选框,则必须进行计数,如果存在,则会使提交按钮处于活动状态,否则提交按钮将处于非活动状态。

<div id="collapseOne">
  <span class="custom-checkbox addspace pull-left">
  <input type="checkbox"/>
  <span class="box"><span class="tick"></span></span>
</span>
</div>
<div id="collapseTwo">
  <span class="custom-checkbox addspace pull-left">
  <input type="checkbox"/>
  <span class="box"><span class="tick"></span></span>
</span>
</div>
$(document).ready(function() {
    $a=$('#collapseOne input[type="checkbox"]').filter(':checked').length;
    $b=$('#collapseTwo input[type="checkbox"]').filter(':checked').length;

    if(($a && $b)>0 ){
        $("#button").addClass('active') 
    }
    else{
        $("#button").removeClass('active').addClass('disabled') 
    }

});

1 个答案:

答案 0 :(得分:2)

您需要使用length代替lenght

$a=$('#collapseOne input[type="checkbox"]').filter(':checked').length;
$b=$('#collapseTwo input[type="checkbox"]').filter(':checked').length;

以及使用:

if($a > 0 && $b>0 ){

而不是:

if(($a && $b)>0 ){

编辑:您还需要将代码包装在change()函数中,以便在输入更改时跟踪:

$(document).ready(function () {
    $('input[type="checkbox"]').change(function () {
        $a = $('#collapseOne input[type="checkbox"]').filter(':checked').length;
        $b = $('#collapseTwo input[type="checkbox"]').filter(':checked').length;

        if (($a && $b) > 0) {
            $("#button").addClass('active')
        } else {
            $("#button").removeClass('active').addClass('disabled')
        }
    }).change();
});

<强> Fiddle Demo