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 に答える