позвольте мне попытаться объяснить из образа,
1.Резервации, Клиенты проверяются под вкладкой Аренда автомобилей.
Теперь из вкладки «Прокат автомобилей» оба выбраны из кода php, т. Е. (Бронирование, клиенты),
Итак, теперь я хочу написать код в документе. Чтобы проверить флажок SelectAll_Dynamic (Выбрать все),! потому что все внутренние флажки (Бронирование, Клиенты) проверяются,
если кто-либо из внутренних флажков (либо «Бронирование», либо «Клиенты») не установлен, то флажок «Выбрать все» («Выбрать все») должен быть снят.
14 – динамический.! для каждого нового div его меняется пример: 1,4,6,12 уникальных ..
<div id="tabs-14" class="tab-pane active"> <div class="panel-body"> <div class="row"> <div class="col-md-3"> <div class="checkbox"> <label> <input type="checkbox" class="SelectAll_Dynamic" id="14"> <b>Select All</b> </label> </div> </div> <div class="col-md-3"> <div class="checkbox"> <label> <input type="checkbox" name="pages[]" value="41" checked="">Reservations</label> </div> </div> <div class="col-md-3"> <div class="checkbox"> <label> <input type="checkbox" name="pages[]" value="52" checked="">Customers</label> </div> </div> </div> </div> </div>
Я хочу выполнить функцию после загрузки страницы, которая должна проверить, отмечены ли все флажки или нет, кроме первого, у которого есть класс SelectAll_Dynamic
Если выбраны все дочерние флажки, родитель должен выбрать, как я могу это достичь.?
Это функциональность, которую я имею для проверки / снятия отметки со всех
$('.SelectAll_Dynamic').click(function() { var select_Id = this.id; var checked = $(this).prop('checked'); $('#tabs-'+select_Id).find('input:checkbox').prop('checked', checked); }); $('.tab-pane').find('input:checkbox:not(:first)').click(function() { if (!$(this).is(':checked')) { $(this).closest('.tab-pane').find('input:checkbox:first').prop('checked', false); } else { var checkbox_length = $(this).closest('.tab-pane').find('input:checkbox:not(:first)').length; var checked_check_box_length = $(this).closest('.tab-pane').find('input:checkbox:not(:first):checked').length; if (checkbox_length == checked_check_box_length) { $(this).closest('.tab-pane').find('input:checkbox:first').prop('checked', true); } } });
Мои ожидаемые результаты:
<input type="checkbox" class="SelectAll_Dynamic" id="14" checked> //checked
если все дочерние флажки отмечены.!
Вам нужно сделать это, как показано ниже:
$(document).ready(function(){ $('.tab-pane').each(function(){ var checkbox_length = $(this).find('input:checkbox:not(:first)').length; var checked_check_box_length = $(this).find('input:checkbox:not(:first):checked').length; if (checkbox_length == checked_check_box_length) { $(this).find('input:checkbox:first').prop('checked', true); } }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="tabs-14" class="tab-pane active"> <div class="panel-body"> <div class="row"> <div class="col-md-3"> <div class="checkbox"> <label> <input type="checkbox" class="SelectAll_Dynamic" id="14"> <b>Select All</b> </label> </div> </div> <div class="col-md-3"> <div class="checkbox"> <label> <input type="checkbox" name="pages[]" value="41" checked="">Reservations</label> </div> </div> <div class="col-md-3"> <div class="checkbox"> <label> <input type="checkbox" name="pages[]" value="52" checked="">Customers</label> </div> </div> </div> </div> </div>
$(document).ready(function() { var allCheckboxes = $('.SelectAll_Dynamic').closest('div[id^="tabs-"]').find('input:checkbox').not(":eq(0)"); var flag = true; $.each(allCheckboxes, function( i, val ) { if($(val).prop('checked') == false) flag = false; }); if(flag) $('.SelectAll_Dynamic').prop('checked', true); $('.SelectAll_Dynamic').click(function() { var select_Id = this.id; var checked = $(this).prop('checked'); $('#tabs-'+select_Id).find('input:checkbox').prop('checked', checked); }); $('.tab-pane').find('input:checkbox:not(:first)').click(function() { if (!$(this).is(':checked')) { $(this).closest('.tab-pane').find('input:checkbox:first').prop('checked', false); } else { var checkbox_length = $(this).closest('.tab-pane').find('input:checkbox:not(:first)').length; var checked_check_box_length = $(this).closest('.tab-pane').find('input:checkbox:not(:first):checked').length; if (checkbox_length == checked_check_box_length) { $(this).closest('.tab-pane').find('input:checkbox:first').prop('checked', true); } } }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="tabs-14" class="tab-pane active"> <div class="panel-body"> <div class="row"> <div class="col-md-3"> <div class="checkbox"> <label> <input type="checkbox" class="SelectAll_Dynamic" id="14"> <b>Select All</b> </label> </div> </div> <div class="col-md-3"> <div class="checkbox"> <label> <input type="checkbox" name="pages[]" value="41" checked="">Reservations</label> </div> </div> <div class="col-md-3"> <div class="checkbox"> <label> <input type="checkbox" name="pages[]" value="52" checked="">Customers</label> </div> </div> </div> </div> </div>
function SelectAll_Dynamic(){ if($('.SelectAll_Dynamic').is(':checked')){ //alert('if'); $( "input" ).prop( "checked", true ); } else { //alert('else'); $( "input" ).prop( "checked", false ); } }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="tabs-14" class="tab-pane active"> <div class="panel-body"> <div class="row"> <div class="col-md-3"> <div class="checkbox"> <label> <input type="checkbox" class="SelectAll_Dynamic" onclick="SelectAll_Dynamic();" id="14" checked> <b>Select All</b> </label> </div> </div> <div class="col-md-3"> <div class="checkbox"> <label> <input type="checkbox" name="pages[]" value="41" checked="">Reservations</label> </div> </div> <div class="col-md-3"> <div class="checkbox"> <label> <input type="checkbox" name="pages[]" value="52" checked="">Customers</label> </div> </div> </div> </div> </div>