使用Jquery单击其他复选框启用复选框

时间:2009-10-29 05:49:15

标签: jquery html

我已禁用除一个以外的所有复选框。点击该复选框后,我想启用所有复选框。如果未选中该复选框,则应保持禁用所有其他复选框。有人可以帮我这个。 我试过用

$(document).ready(function() {<br>
    if ($('#mainCheckbox').is(':checked')) {<br>
     $(".otherCheckbox").removeAttr("disabled");
     }      
});

但这不适合我。

3 个答案:

答案 0 :(得分:5)

这对我来说很好用

<input type="checkbox" id="chkMain" /><br
<input class="child" type="checkbox" id="chk1" disabled="true" />
<input class="child" type="checkbox" id="chk2" disabled="true" />
<input class="child" type="checkbox" id="chk3" disabled="true" />
<input class="child" type="checkbox" id="chk4" disabled="true" />
<input class="child" type="checkbox" id="chk5" disabled="true" />

$(function(){
  $("#chkMain").click ( function() {

    if ( !$(this).is ( ":checked" ) )
    {
      $(".child").attr ( "disabled" , true );
    }
    else
    {
      $(".child").removeAttr ( "disabled" );
    }
  });
});

Working Demo

如果您也可以发布HTML,那么它会更有帮助。

答案 1 :(得分:1)

这是有效的:

if($("#mainCheckbox").is(":checked")){
    $("input:checkbox").not(this).removeAttr("disabled");
}
else{
    $("input:checkbox").not(this).attr("disabled","true");
}

答案 2 :(得分:0)

这是一个解决方案(注意每个功能):

function toogleOthersIf(aBoolean) {
    $(".otherCheckBox").each(function() {
        if (aBoolean) {
            $(this).removeAttr("disabled");
        } else {
            $(this).attr("disabled", "disabled");
        }
    });
}

$(document).ready(function(){
    $('#mainCheckBox').click(function(e) {
        toogleOthersIf($('#mainCheckBox:checked').length > 0);
    });

    toogleOthersIf(false);
});