所以我最近在the other question I posted询问了一个关于如何执行此操作的问题,其中我询问如何更改某些javascript以使其仅在选中特定复选框时才会禁用所有复选框。< / p>
我写的是这样的:
$(function () {
$("#disable").change(function () {
$(this).siblings().attr("disabled", $(this).is(":checked"));
});
});
以及here on jsfiddle你会发现它不起作用。我们的想法是,如果您选中第一个复选框,则所有其余复选框都将被禁用。怎么没有......
我做错了什么?
答案 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");
}
});
});