我有以下代码用于选择多个复选框:
$(document).ready(function() {
/* All groups functionality */
$(".allGroups").change(function() {
var checked = this.checked;
if (checked == true) {
$(".group").attr("checked", true);
$(".c").attr("checked", true);
}
if (checked == false) {
$(".group").attr("checked", false);
$(".c").attr("checked", false);
}
})
/* Individual Group functionality */
$(".group").change(function() {
var checked = this.checked;
var number = this.value
var set = '.group-' + number;
$(set).attr("checked", checked);
})
} )
我给了“联系人”课程c
和group-#
。小组获得课程group
。
全选复选框获取.allGroups
现在,当不再检查所有内容时,我如何实现“全选”复选框取消选中?
这里有一个jsFiddle:http://jsfiddle.net/nqHtu/1/
答案 0 :(得分:1)
在这里:http://jsfiddle.net/AlienWebguy/nqHtu/2/
只需将此添加到.group更改事件:
if($(".group:checked").length < $(".group").length)
{
$(".allGroups").prop("checked",false);
}
此外,只是抬头,“选中”现在是属性,而不是属性,因此您需要使用prop()
而不是attr()
来操纵它
答案 1 :(得分:1)
$(".c").change(function() {
if(! this.checked) {
$(".allGroups").attr("checked", false);
}
});
答案 2 :(得分:1)
小提琴:http://jsfiddle.net/nqHtu/4/
我还进行了几次格式化改进。注意事项:
attr
而不是prop
。 http://api.jquery.com/prop/ 这是更新后的JavaScript:
$(document).ready(function() {
/* All groups functionality */
var $allGroups = $(".allGroups").change(function() {
var checked = this.checked;
$(".group").prop("checked", checked);
$(".c").prop("checked", checked);
})
/* Individual Group functionality */
$(".group").change(function() {
var checked = this.checked;
var number = this.value
var set = '.group-' + number;
$(set).prop("checked", checked);
var allchecked = $(".group:checked").length == $(".group").length;
$allGroups.prop('checked', allchecked);
});
});
答案 3 :(得分:1)
'全选'复选框取消选中自己 什么时候不再检查所有东西
这假设我们考虑了未选中的联系人组复选框
$(":checkbox").change(function() {
if ($(":checked").length < $(":checkbox").length) {
$(".allGroups").prop("checked", false);
}
});