我有多个复选框输入,而有些则被禁用 . 因此,当我单击选择全部/取消选中顶部的所有复选框时,我想将此事件应用于仅启用的复选框 . 此外,当我通过单击每个复选框检查所有复选框时,必须单击全选复选框 .
Note :此外我还有一项功能,当点击启用的复选框并点击保存点击后,将禁用该特定复选框 . 我可以使用添加新复选框按钮添加新复选框 . 添加新复选框后,必须取消选中全选/取消全选复选框 .
HTML
<input type="checkbox" id="ckbCheckAll" /><span>Select all</span>
<table id="myTable">
<tr>
<td>
<input type="checkbox" class="checkBoxClass" disabled="disabled" checked/> <span>Option1</span></td>
</tr>
<tr>
<td>
<input type="checkbox" class="checkBoxClass" /> <span>Option2</span></td>
</tr>
<tr>
<td>
<input type="checkbox" class="checkBoxClass" /> <span>Option3</span></td>
</tr>
<tr>
<td>
<input type="checkbox" class="checkBoxClass" /> <span>Option4</span></td>
</tr>
<tr>
<td>
<input type="checkbox" class="checkBoxClass" /> <span>Option5</span></td>
</tr>
</table>
<button id="add">
Add check box
</button>
<button id="save">
Save
</button>
JQuery
$(document).ready(function() {
$("#ckbCheckAll").click(function() {
$(".checkBoxClass").prop('checked', $(this).prop('checked'));
});
});
$(document).ready(function() {
$('.checkBoxClass').click(function() {
var selected = $('.checkBoxClass').length;
if ($('.checkBoxClass:checked:enabled').length === selected) {
$('#ckbCheckAll').prop('checked', true);
} else {
$('#ckbCheckAll').prop('checked', false);
}
})
});
$(document).ready(function() {
count = 5;
$('#save').click(function() {
$('.checkBoxClass').each(function() {
if ($(this).is(':checked')) {
$(this).prop('disabled', true);
}
})
});
$('#add').click(function() {
count = count + 1;
$('#myTable').append('<tr><td><input type="checkbox" class="checkBoxClass" /> <span>Option'+count+'</span></td></tr>')
});
})
小提琴
4 回答
这是另一种方法 . 而不是使用
filter
我使用了:enabled
. 还使用on
jquery来检测新添加的复选框 . 希望它会对你有所帮助 .demo
要检测禁用的复选框,您可以使用jquery
filter
方法,如下所示:通过像这样使用
filter
,JQuery更改了未禁用属性的复选框 .并使用
.prop('checked', false)
或.attr('checked', false)
取消选中添加新复选框按钮的复选框 .所以要取消选中全部保存并添加复选框使用:
并取消选中addcheckbox上所有已启用的复选框:
您还应该使用
$(document).on("click",".checkBoxClass",function(){})
binder让JQuery绑定click
事件以动态添加复选框 . 通过执行此操作并添加一些额外的jquery,选中所有复选框,选中所有复选框时选中 .Updated Fiddle
试试这个,它只会启用checkobox并选择/取消选择它们 .
检查小提琴http://jsfiddle.net/p73wW/8/
试试这个 :
Updated Fiddle