禁用复选框不完全正常工作

时间:2013-01-17 03:01:31

标签: javascript jquery html checkbox

所以我最近在the other question I posted询问了一个关于如何执行此操作的问题,其中我询问如何更改某些javascript以使其仅在选中特定复选框时才会禁用所有复选框。< / p>

我写的是这样的:

$(function () {
    $("#disable").change(function () {
        $(this).siblings().attr("disabled", $(this).is(":checked"));
    });
});

以及here on jsfiddle你会发现它不起作用。我们的想法是,如果您选中第一个复选框,则所有其余复选框都将被禁用。怎么没有......

我做错了什么?

3 个答案:

答案 0 :(得分:1)

没有兄弟姐妹的类型是复选框。

$("#disable").change(function () {
    $('.sidebar').not(this).attr("disabled", this.checked);
});

答案 1 :(得分:1)

你错了DOM。点击此处:http://jsfiddle.net/83w8s/1/

$(function () {
  $("#disable").change(function () {
    $(this).closest('.control-group').siblings('.control-group').find('input').attr("disabled", $(this).is(":checked"));
  });
});

答案 2 :(得分:1)

您必须选中所有复选框而不选中已选中的复选框,然后您可以禁用所有其他复选框,留下第一个选中的复选框,如下所示

$(document).ready(function(){
    $("#disable").change(function () {
            if($("#disable").is(':checked')){                          
                $("input[type='checkbox']:not(#disable)").attr("disabled", "disabled");                   
            }else{
                $("input[type='checkbox']:not(#disable)").removeAttr("disabled");   
            }
        });
});

JSFiddle