如果选中包含多个复选框的div中的一个复选框,则将类添加到所有复选框

时间:2014-07-10 03:50:50

标签: javascript jquery

如果只检查该div中的一个复选框,我想在div中的所有复选框中添加一个类。我不认为我太遥远了,但我被困住了。这就是我所拥有的。

var checkboxes = $("#myContent input[type='checkbox']");
$(document).on("click", checkboxes, function() {
    if(checkboxes.is(":checked")) {
        checkboxes.removeClass('invalid').addClass('valid');
    }
    else {
        checkboxes.removeClass('valid').addClass('invalid');
    }
});

我已经尝试用一个警告来代替addClass / removeClass,但是在检查一个框和取消选中时(我在“else”语句中提到的警告),我都得到相同的警报。我必须在这附近,有人知道我错过了吗?

我的HTML如下(我也在使用Smarty):

<div class="pd5" id="myContent">
                        {foreach from=$cLibrary key=k item=l}
                        <div class="clrBoth {cycle values=',AltRows0'} pd5 fLeft p100">
                            <input type="hidden" name="isform[{$k}]" value="{$l.isform}" class="valid" />
                            <div class="fLeft px20">
                                <input type="checkbox" value="{$k}" name="contentValue[{$k}]" id="contentData_{$k}" class="invalid" {foreach item=cn key=po from=$selectedContent}{if $cn eq $k} checked {/if}{/foreach} />
                            </div>
                        </div>
</div>

2 个答案:

答案 0 :(得分:1)

  1. 使用if(this.checked)

  2. 检查条件
  3. 如果在变量中定义复选框选择器,则动态元素不会计数。所以没有使用委托事件。


  4. $(document).on("click", "#myContent :checkbox", function (e) {
    
        if (this.checked) {
            $('#myContent :checkbox').removeClass('invalid').addClass('valid');
        } else {
            $('#myContent :checkbox').removeClass('valid').addClass('invalid');
        }
    });
    

    <强> Fiddle

答案 1 :(得分:0)

我发现了这项工作

 $(function(){

  $(".checkbox").on("click",function(){

    if($(this).is(":checked")){

      $(".checkbox").removeClass("invalid").addClass("valid");

    }else{

      $(".checkbox").removeClass("valid").addClass("invalid");
    }

  })
});


  <div id="wrapper">
   <input type="checkbox" class="checkbox">
   <input type="checkbox" class="checkbox">
   <input type="checkbox" class="checkbox">
    <input type="checkbox" class="checkbox">
  <input type="checkbox" class="checkbox">
</div>