【发布时间】:2022-01-20 09:07:12
【问题描述】:
if (this.checked != true) {
this.checked = true;
}
else {
this.checked = false;
}
以上代码启用Check up All 和Check out All 功能。但是,我发现如果任何一个复选框被用户反向选中,每个输出都会反转。
当button被点击时,我应该如何改变以获得关注?
- 检查所有框(完成)
- 选中任何未选中的框(问题)
- 选中
all框时检查每个框(实现)
以下是完整代码:
function display() {
$.ajax({
url: "test.php",
type: "get",
data: {
a: $('#selectest option:selected').val()
}
}).done(function(data) {
$('#result').text(data);
alert("Checking test");
$('input:checkbox[class='+data+']').each(function() {
if(this.checked != true){
this.checked = true;
}
else{
this.checked = false;
}
});
});
}
【问题讨论】:
-
您似乎想使用 SINGLE 按钮来检查全部和取消全部检查。但是如果用户已经选中了“一半”的复选框,会发生什么? - 所以我能想到的解决方案就是简单地使用两个单独的按钮,一个是“Check-all”,另一个是“Uncheck all”。
-
@KenLee 这正是问题所在。将这些功能实现到单个按钮中是不可能的吗?
-
其实是可以的:(1)先检查有多少个checkbox已经被“选中”,(2)如果选中的checkbox的数量是MORE或者EQUAL等于未选中的checkbox的数量,那么就取消选中所有的复选框,否则检查所有的复选框
标签: javascript php html jquery ajax