Javascript 确定是否选中jQuery对象中的所有复选框,返回为布尔值
大家好。我一直在想这个问题 我创建了一个包含复选框的jQuery对象,并将其存储在一个变量中:Javascript 确定是否选中jQuery对象中的所有复选框,返回为布尔值,javascript,jquery,if-statement,boolean,Javascript,Jquery,If Statement,Boolean,大家好。我一直在想这个问题 我创建了一个包含复选框的jQuery对象,并将其存储在一个变量中: $group1 = $('#checkbox1,#checkbox2,#checkbox3,#checkbox4'); 除非选中该组中的所有复选框,否则用户无法继续 我一直在使用if语句结合.is(':checked')来查找布尔值: if( $group1.is(':checked') ){ //continue is OK } …但是.is(':checked')将返回TRUE如果在组中选
$group1 = $('#checkbox1,#checkbox2,#checkbox3,#checkbox4');
除非选中该组中的所有复选框,否则用户无法继续
我一直在使用if语句结合.is(':checked')
来查找布尔值:
if( $group1.is(':checked') ){
//continue is OK
}
…但是.is(':checked')
将返回TRUE
如果在组中选中任何复选框。本质上,.is(':checked')
对$group1中的选定元素执行OR操作。我正在寻找AND操作,因此必须检查所有选定的元素以返回TRUE
。是否有jQuery函数可以执行此操作或其他解决方法?更正:
您可以只获取的元素,然后检查集合中是否还有元素,如果没有,则检查组中的所有元素:
if( $group1.filter(':not(:checked)').length === 0){
//continue is OK
}
我建议你给你的复选框上课
var len = $('.check_needed').length;
var chk = $('.check_needed:checked').length;
if (len == check){
//carry on
}else{
// go home
}
@亚当有点不舒服
if( $group1.filter(':not(:checked)').length === 0){
//continue is OK
}
我想你需要这样的东西:
$(document).ready(function(){
var checked = true;
$('input:checkbox').each(function(){
if(checked){
checked = $(this).is(':checked');
}
});
});
如果未选中其中任何一项,则应将其设置为checked=false。您也可以使用
$(函数(){
})) adam的解决方案基本上是相同的编辑:如果所有复选框都必须选中,那么,
$group1.length==$group.filter(“:checked”)。length可能更合适,但这并不能解决他的问题……他不想看是否有复选框被选中,而是想看是否所有复选框都被选中。(尽管这是一个简单的解决方法。)这里的逻辑将确保至少选中一个复选框,而不是确保所有复选框都选中。我建议您从变量名中去掉$
。这在JavaScript中是不需要的,它旨在由机械生成的代码使用。您可以使用它(就像jQuery一样),但打破这个惯例不是一个好的做法。我建议您将类添加到复选框中,这样您就可以执行$('.className:checkbox'),或者,如果您想选择所有复选框,只需执行:$(':checkbox'))@这实际上是一种非常常见的jQuery约定,用于表示jQuery集合中的变量。我建议他继续使用它。它有助于代码的可读性,而且不会损害任何东西。@BBonifield:我不知道。谢谢你指出这一点!比我的解决方案优雅得多!这是一个很好的解决方案,非常有效。谢谢伯尼菲尔德和亚当,还有其他人!美好的干净简单。
// add multiple select / deselect functionality
$("#selec_all_chk").click(function () {
$('.chk_class').attr('checked', this.checked);
});
// if all checkbox are selected, check the selectall checkbox
// else uncheck
$(".chk_class").click(function(){
if($(".chk_class").length == $(".chk_class:checked").length) {
$("#selec_all_chk").attr("checked", "checked");
} else {
$("#selec_all_chk").removeAttr("checked");
}
});