第一次按“全选”时,所有复选框都会突出显示。但是当再次按下时,它们不会被移除。问题是什么?
链接:https://jsfiddle.net/erLqk2v9/2/
JQuery代码:
$(document).ready(function() {
$(".select-all").click(function() {
var checkboxes = $("form input[type=checkbox]");
if($(this).is(":checked")) {
checkboxes.prop("checked", false);
} else {
checkboxes.prop("checked", true);
}
});
});
答案 0 :(得分:3)
答案 1 :(得分:0)
问题是您正在检查:checked
.select-all
元素上的span
。我进行了更改,以便检查第一个复选框,即第一个<input type="checkbox" value="All" id="all-val">
元素
答案 2 :(得分:0)
你应该反过来做出if
陈述。
为了更好的可用性,我还添加了一种方法,因此如果用户选中所有复选框,则&#34;全选&#34;还检查:
$(".select-all").change(function() {
// If "Select All" are selected, check all checkboxes
if ($(this).is(":checked")) {
$("input[type=checkbox]").prop("checked", true);
}
// If "Select All" are not selected, uncheck all checkboxes
else {
$("input[type=checkbox]").prop("checked", false);
}
});
// If all is checked, check "Select All"
$("form input[type=checkbox]").change(function() {
// If all checkboxes are selected check, "Select All"
if ($('form input[type=checkbox]:checked').length == $('form input[type=checkbox]').length) {
$('.select-all').prop('checked', true);
}
// If all checkboxes are not selected, uncheck "Select All"
else {
$(".select-all").prop("checked", false);
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="checkbox" class="select-all" id="checkAll">
<label for="checkAll">Check All</label>
<form>
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
</form>
&#13;