0

所以我最近在我发布的另一个问题上问了一个关于如何做到这一点的问题,我问如何更改一些 javascript 以使其只有在选中特定复选框时所有复选框都将被禁用。

好吧,我写了这个:

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

jsfiddle 上,您会发现它不起作用。这个想法是,如果您选中第一个复选框,则其余所有复选框都应该被禁用。怎么还没……

我究竟做错了什么?

4

3 回答 3

1

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

$("#disable").change(function () {
    $('.sidebar').not(this).attr("disabled", this.checked);
});
于 2013-01-17T03:06:21.050 回答
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"));
  });
});
于 2013-01-17T03:06:32.663 回答
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

于 2013-01-17T04:10:00.190 回答