jquery复选框问题 - 不要检查它是否被禁用

CFN*_*nja 13 checkbox jquery

我每行有5个复选框.第一个是'ALL'.我试图看看是否有其他人被禁用.因此,如果有人点击"全部"复选框,我需要确保未选中已禁用的复选框.这就是我所拥有的:

("input[name^=all_]").each(function() {
var input = $(this);   
var name = input.attr('name');    
var num = /\d+$/.exec(name)[0]; 
$(this).click(function() {

if ($('"#G"+num').attr('disabled',false)) {            
$("#G"+num).attr('checked', $("#all_"+num).is(':checked'));
}
if ($('"#E"+num').attr('disabled',false)) {         
$("#E"+num).attr('checked', $("#all_"+num).is(':checked'));
}
if ($('"#W"+num').attr('disabled',false)) {
$("#W"+num).attr('checked', $("#all_"+num).is(':checked'));
}
if ($('"#S"+num').attr('disabled',false)) {
$("#S"+num).attr('checked', $("#all_"+num).is(':checked'));
}
});
Run Code Online (Sandbox Code Playgroud)

});

问题是,一旦我点击"全部",残疾人仍然会被检查.我究竟做错了什么?提前致谢.

CFN*_*nja 15

这工作:

 if ( !$("#G"+num).is(':disabled') ) {             
$("#G"+num).attr('checked', $("#all_"+num).is(':checked'));
}
if ( !$("#E"+num).is(':disabled')) {            
$("#E"+num).attr('checked', $("#all_"+num).is(':checked'));
}
if ( !$("#W"+num).is(':disabled') ) {
$("#W"+num).attr('checked', $("#all_"+num).is(':checked'));
}
if (!$("#S"+num).is(':disabled')) {
$("#S"+num).attr('checked', $("#all_"+num).is(':checked'));
}
});
Run Code Online (Sandbox Code Playgroud)


Ser*_*jas 10

检查所有的残疾人除外

$('input:checkbox:not(:disabled)').attr('checked','checked');
Run Code Online (Sandbox Code Playgroud)

取消所有的残疾人除外

$('input:checkbox:not(:disabled)').removeAttr('checked');
Run Code Online (Sandbox Code Playgroud)


Dou*_*eny 5

使用jQuery的":disabled"过滤器而不是访问"disabled"属性.