Итоговый (рабочий) вариант.
<script>
var submitButton = document.getElementById('submit_1');
if(submitButton){
submitButton.addEventListener('click', function(event) {
this.disabled = true;
});
}
function toggleChildren(parentId){
const parentCheckbox=document.getElementById(parentId);
const childCheckboxes=document.querySelectorAll(`input[type="checkbox"][data-parent=${parentId}]`);
childCheckboxes.forEach(child => {
child.checked = parentCheckbox.checked;
});
}
function checkParent(parentId) {
const parentCheckbox = document.getElementById(parentId);
const childCheckboxes = document.querySelectorAll(`input[type="checkbox"][data-parent=${parentId}]`);
// Проверяем, все ли дочерние чекбоксы сняты
const allUnchecked = Array.from(childCheckboxes).every(child => !child.checked);
// Если все дочерние чекбоксы сняты, снимаем галочку у родительского
parentCheckbox.checked = !allUnchecked;
}
</script>
<div class="second_line">
<div class="content_organ">
<label><h4>Organe_name</h4></label>
<!--<input type="text" name="organe">-->
<br>
{% for o in organ_set_sort %}
<!--o = o.filter(question = qu.id) -->
<label><input type="checkbox" name={{o}} value={{o}} id="{{o}}" onchange="toggleChildren('{{o}}')">{{o}}</label>
<br>
{% endfor %}
</div>
<div class="content_tissue">
<label><h4>Tissue_name</h4></label>
<!-- <input type="text" name="tissue">-->
{% for t in tissue_set_sort %}
<!--o = o.filter(question = qu.id) -->
<label><input type="checkbox" name={{t.0}} value={{t.0}} data-parent="{{t.1}}" onchange="checkParent('{{t.1}}')">{{t.0}}</label>
<br>
<br>
{% endfor %}
</div>
</div>
Отдельное спасибо
Алексей Уколов за помощь. Обязательно почитаю!