$(document).on('change', '#check-all', function() {
if($(this).is(":checked")) {
$('.leads_checkbox').prop('checked','checked');
} else {
$('.leads_checkbox').removeProp('checked');
}
});
这是我的代码,它在点击后检查所有内容,但不取消选中复选框。请帮忙。
答案 0 :(得分:1)
而不是使用prop
使用attr
对我来说很好。
更新代码:
$(document).on('change', '#check-all', function() {
if($(this).is(":checked")) {
$('.leads_checkbox').attr('checked','checked');
} else {
$('.leads_checkbox').removeAttr('checked');
}
});
演示: https://codepen.io/anon/pen/pwWqxm
<强>更新强>
在某些情况下, attr
失败了。我认为你应该坚持使用prop
。
答案 1 :(得分:1)
以下是您的问题的简单示例
$(document).on('change', '#check-all', function() {
$('.leads_checkbox').prop('checked',$(this).is(":checked"));
});
答案 2 :(得分:0)
问题在于removeProp("checked")
无法正常工作,因为checked
是该元素的本机属性。您可以在.removeProp() documentation:
请勿使用此方法删除本机属性,例如已选中,已禁用或已选中。
您最好将checked
属性重置为false
:
$('.leads_checkbox').prop('checked', false);
<强>演示:强>
$(document).on('change', '#check-all', function() {
if($(this).is(":checked")) {
$('.leads_checkbox').prop('checked','checked');
} else {
$('.leads_checkbox').prop('checked', false);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Check All<input type="checkbox" id="check-all"/>
<br/><br/>
<input type="checkbox" class="leads_checkbox"/>
<input type="checkbox" class="leads_checkbox" />
<input type="checkbox" class="leads_checkbox" />
<input type="checkbox" class="leads_checkbox" />