Постановка задачи:
На форме имеются несколько чекбоксов, которые зависят от одного главного чекбокса. При щелчке на главном чекбоксе нужно выделить все подчиненные чекбоксы. Если все подчиненные чекбоксы выделены и снимается выделение с одного из них - с гланого так же нужно снять выделение.
В моем варианте это выглядит так (в верхней строке главный чекбокс):
Решение:
Главный checkbox:
Скрипты, отмечающие чекбоксы:
//отмечаем все подчиненные чекбоксы, при щелчке на главном
//отмечаем родительтский checkbox если выбраны все дочерние, или снимаем с него выбор если хоть один из дочерних чекбоксов не отмечен
На форме имеются несколько чекбоксов, которые зависят от одного главного чекбокса. При щелчке на главном чекбоксе нужно выделить все подчиненные чекбоксы. Если все подчиненные чекбоксы выделены и снимается выделение с одного из них - с гланого так же нужно снять выделение.
В моем варианте это выглядит так (в верхней строке главный чекбокс):
Решение:
Главный checkbox:
<input type="checkbox" id="mainChecker" onclick="toggleChecked(this.checked)" />Все подчиненные чекбоксы должны иметь класс checkbox:
<input type="checkbox" class="checkbox" onclick="toggleParentChecked(this.checked)" />
Скрипты, отмечающие чекбоксы:
//отмечаем все подчиненные чекбоксы, при щелчке на главном
function toggleChecked(status) {
$(".checkbox").each(function() {
$(this).attr("checked",status);
})
}
//отмечаем родительтский checkbox если выбраны все дочерние, или снимаем с него выбор если хоть один из дочерних чекбоксов не отмечен
function toggleParentChecked(status) {
if(status==false)
$("#mainChecker").attr("checked",status);
else
{
var isallchecked = true;
$(".checkbox").each(function() {
if(!$(this).attr("checked"))
isallchecked = false;
})
if(isallchecked)
$("#mainChecker").attr("checked", true);
}
}
Комментариев нет:
Отправить комментарий