Эй, все. Я пытался понять это на некоторое время.
Я создаю объект jQuery для флажков и сохраняю его в переменной:
$group1 = $('#checkbox1,#checkbox2,#checkbox3,#checkbox4');
Пользователь не может продолжить, если не отмечены все флажки в этой группе.
Я использовал оператор if в сочетании с .is(':checked')
, чтобы найти логическое значение:
if( $group1.is(':checked') ){
//continue is OK
}
... но .is(':checked')
вернет TRUE
, если в группе отмечены флажки. По существу, .is(':checked')
выполняет операцию ИЛИ для выбранных элементов в $group1. Я ищу операцию AND, поэтому все выбранные элементы должны быть отмечены, чтобы вернуть TRUE
. Есть ли функция jQuery, которая делает это, или другое обходное решение?
Ответ 1
@Adam выключен только немного
if( $group1.filter(':not(:checked)').length === 0){
//continue is OK
}
Ответ 2
Исправлено:
Вы можете filter получить только те элементы, которые not checked, а затем проверить, нет ли каких-либо элементов в коллекции, если нет, все элементы в группе проверяются:
if( $group1.filter(':not(:checked)').length === 0){
//continue is OK
}
Ответ 3
Я бы предположил, что вы даете свои флажки классу, а затем
var len = $('.check_needed').length;
var chk = $('.check_needed:checked').length;
if (len == check){
//carry on
}else{
// go home
}
Ответ 4
Я думаю, вам нужно что-то вроде:
$(document).ready(function(){
var checked = true;
$('input:checkbox').each(function(){
if(checked){
checked = $(this).is(':checked');
}
});
});
Это должно установить checked = false, если какой-либо из них не установлен.
Ответ 5
Вы также можете использовать
$(функция() {
// 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");
}
});
});