我的复选框:
<input disabled="disabled" class="Spec" type="checkbox" value="1" />
<input class="Spec" type="checkbox" value="2" />
<input disabled="disabled" class="Spec" type="checkbox" value="5" />
<input class="Spec" type="checkbox" value="8" />
<input disabled="disabled" class="Spec" type="checkbox" value="10" />
<input class="Spec" type="checkbox" value="30" />
我的jQuery选择所有复选框,无论它们是启用还是禁用 - 是否可以仅检查已启用的复选框?
$('#Spec_all').on('click', function() {
$('.Spec').attr('checked', $(this).is(":checked"));
});
答案 0 :(得分:19)
您可以使用:enabled
伪选择器:
$('.Spec:enabled:checked')
因此,选择所有未被禁用的类Spec
的元素,并进行检查。
修改强>
您不希望在选择器中选中已选中的复选框,否则一旦取消选中它们,就不会再次选中它们。您可以执行以下操作:
$('#Spec_all').on('click', function() {
$('.Spec:enabled').prop('checked', this.checked);
});
答案 1 :(得分:2)
选中选中的复选框非常简单。您需要做的就是定义类并使用选中的选择器。这导致如下:
$('.Spec:checkbox:checked:enabled')
cfr:http://api.jquery.com/checked-selector/
仅选择已启用的选项...添加启用的选择器(http://api.jquery.com/enabled-selector/)
您也可以使用:not(:disabled)
代替enabled
。有一点点差异(在enabled-selector文档中有说明)
我还添加了“复选框”选择器,以确保我们只检查复选框(如果可能是.Spec也用于其他类型的情况)。
答案 2 :(得分:0)
jQuery - checkbox enable/disable
此来源选中所有复选框:
$("input:checkbox").each(function(){
var $this = $(this);
if($this.is(":checked")){
alert('enable');
}
});