В моем модуле блогов я могу назначать категории каждому блогу. В категориях могут быть дочерние категории, как показано в этом коде:
<table class="table">
@foreach(App\Http\Controllers\CategoriepageController::getAllPage() as $page)
<tr class="parent">
<td>
<input type="checkbox" name="page_id[]"
value="{{ $page->id }}"
{{ App\Http\Controllers\ArticleController::existPageLiaison($page->id, $article->id) == 'true' ? 'checked' : '' }}
class="parent"
>
{ $page->title }}
</td>
</tr>
@foreach(App\Http\Controllers\CategorieController::getCategoriesPage($page->id) as $categ)
<tr class="child">
<td>
<input type="checkbox" value="{{ $categ->id }}"
name="idCateg[]"
style="margin-left: 40px;"
{{ App\Http\Controllers\ArticleController::existCategLiaison($categ->id, $article->id) == 'true' ? 'checked' : '' }}
>
{{ $categ->title_fr }}
</td>
</tr>
@endforeach()
@endforeach()
</table>
для снятия отметки с детей, когда родительский флажок снят, я попробовал это:
$('.parent').on('click', ':checkbox', function() {
if ($(this).not(':checked')) {
var currentRow = $(this).closest('tr');
console.log(currentRow);
var targetedRow = currentRow.nextAll('.child').nextUntil('.parent');
console.log(targetedRow);
targetedRow.each(function(index,element){
var targetedCheckbox = $(element).find(':checkbox');
targetedCheckbox.prop('checked', false).trigger('change');
})
}
});
, но он не работает должным образом для всех входов (все дочерние входы не проверены, кроме первого).
Я использую скрипт для проверки родительского ввода, если проверен один из его дочерних элементов. Чего не хватает в моем скрипте, так это если все дочерние входы не отмечены, я хочу, чтобы родительский вход был не отмечен, и, во-вторых, когда я снимаю флажок с родительского входа, я хочу, чтобы все дочерние входы не проверялись.