我希望选择所有checkbox
元素,以及残疾人
这是我的HTML
<input id="chkSelectAll" class="checkbox" type="checkbox" />Select All
<div id="ContentPlaceHolder1_listItem_pnlDis_0">
<input id="checkApproved" type="checkbox" name="checkApproved" checked="checked" disabled="disabled">
</div>
<div id="ContentPlaceHolder1_listItem_pnlDis_8" class="dis">
<input id="checkApproved" type="checkbox" name="ctl00$ContentPlaceHolder1$listItem$ctrl8$checkApproved">
</div>
的jQuery
$('#chkSelectAll').click(function () {
var checked_status = this.checked;
// alert(checked_status);
$('div#item input[type=checkbox]').each(function () {
this.checked = checked_status;
});
})
它正在选择所有checkbox
元素,但我想跳过禁用的元素。
我该怎么做?
答案 0 :(得分:17)
使用not()排除具有禁用属性的内容。
$('#chkSelectAll').click(function () {
var checked_status = this.checked;
$('div#item input[type=checkbox]').not("[disabled]").each(function () {
this.checked = checked_status;
});
});
更简洁
$('#chkSelectAll').click(function () {
var checked_status = this.checked;
$('div#item input[type=checkbox]').not(":disabled").prop("checked", checked_status);
});
答案 1 :(得分:2)
$('#chkSelectAll').click(function () {
var checked_status = this.checked;
$('div#item input[type=checkbox]').each(function () {
if (!this.disabled)
this.checked = checked_status;
});
});
或没有每个循环:
$('#chkSelectAll').on('click', function() {
var checked_status = this.checked;
$('div#item input[type=checkbox]').prop('checked', function(i, prop) {
return this.disabled ? prop : checked_status;
});
});
答案 2 :(得分:2)
它可以短到
$('#chkSelectAll').click(function() {
$('div#item :checkbox:not(:disabled)').prop('checked', this.checked);
});
答案 3 :(得分:0)
$('#chkSelectAll').click(function () {
var checked_status = this.checked;
// alert(checked_status);
$('div#item input[type=checkbox]').each(function () {
if(!$(this).is(':disabled'){
this.checked = checked_status;
}
});
})
答案 4 :(得分:0)
或者您也可以使用:not selector,如下所示:
$('#chkSelectAll').click(function () {
var checked_status = this.checked;
$('div#item input[type=checkbox]:not(:disabled)').each(function () {
this.checked = checked_status;
});
});
答案 5 :(得分:0)
我个人建议:
$('#chkSelectAll').change(function(){
var self = this;
$('input:checkbox').filter(function(){
return !this.disabled
}).prop('checked',self.checked);
});
参考文献:
答案 6 :(得分:0)
b
$('input:checkbox:not(:disabled)').attr('checked', 'checked');
请参阅以下链接,了解更多详情http://www.infinetsoft.com/Post/How-to-check-all-except-disabled/18#.V00SYfl97IU
答案 7 :(得分:0)
如果您要选择除禁用行以外的所有行,我个人会建议此解决方案。
只需将此代码添加到复选框输入(HTML)
onclick="$('input[name*=\'selected\']:not(:disabled)').prop('checked',this.checked);"