Снzть все чекбоксы и радио кнопки внутри блока который display: none

VANHALEN

Новичок
Прошу прощения за наглость. Задача. Внутри формы есть много блоков с одинаковыми классами. Внутри блоков могут встречаться чекбоксы и радио кнопки. Блоки зависимы от значения каких-то других радио кнопок. Ну не суть, которе по условию к блоку с содержимым приписывается либо display: none, либо ничего. Нужно бы желательно на нативном javascript внутри формы отловить блоки с определённым классом у которых display: none (не в css а в самом тэге прибавляется) и поснимать все чекбоксы и радио кнопки обнулить.

Зачем? Есть калькулятор из формы сделанный. Ставишь чекбокс - добавляется сумма. А вот выше, или ниже стоят радио кнопки, по которым может показываться, или скрываться определённый блок. Выбрал например штаны в радио кнопке, появился блок с наворотами для штанов. Понавыбирал себе наворотов, а потом передумал и выбрал рубахи. Блок с наворотами для штанов стал display: none а чекбоксы в нём остались отмечены и суммы за навороты сложены и отображаются в общей сумме. По хорошему нужно бы поотжимать все чекбоксы, чтобы скрытый блок не влиял на сумму. Надеюсь понятно обьяснил.
 

VANHALEN

Новичок
JavaScript:
checkbox.checked = false;
Это то понятно, а как мне найти родителя, который скрыт. И причём ведь нужно следить за ним постоянно. А потом у вас просто для сферического коня в вакууме, а мне нужен сброс всех чекбоксов в скрытом блоке, а не одного конкретного
 

Squats

Новичок
Это то понятно, а как мне найти родителя, который скрыт. И причём ведь нужно следить за ним постоянно. А потом у вас просто для сферического коня в вакууме, а мне нужен сброс всех чекбоксов в скрытом блоке, а не одного конкретного
Ну, а за вас тут писать скрипт не будут.
Вы спросили как, я ответил, а выборку уж сами делайте, на основе своих данных.
Ко всему выше уже дали вам ссылку.
Уж если религия не позволяет прочитать и сделать выборку, то тогда прямиком на фриланс...
 

WMix

герр M:)ller
Партнер клуба
если вместо "display: none (не в css а в самом тэге прибавляется) " добавлять/удалять class="invisible"
то найти эти элементы
CSS:
.invisible{
    display: none !important;
}
JavaScript:
document.getElementsByClassName("invisible").forEach(
    function(element){
        element.checked = false;
    }
);
 
Последнее редактирование:

VANHALEN

Новичок
JavaScript:
document.getElementsByClassName("invisible").forEach(
    function(element){
        element.checked = false;
    }
);
Ну вот так уже понятнее гораздо. Тоесть есть такой же foreach как на PHP и действие снятия element.checked = false; Но вы же вроде предлагаете доавлять класс к чекбоксам, а я пытаюсь отловить его родителя к которому добавился display: none; и внутри него снять все чекбоксы. Опять же непонятно, как быдет на javascript действие правильное onchange? Или какой там аналог есть, коорый будет слушать изменения. Вобщем понятно, что вопрос немного не туда задал. Здесь "детям" ничего не рассказывают :) И я не религиозен.
 

Squats

Новичок
Ну вот так уже понятнее гораздо. Тоесть есть такой же foreach как на PHP и действие снятия element.checked = false; Но вы же вроде предлагаете доавлять класс к чекбоксам, а я пытаюсь отловить его родителя к которому добавился display: none; и внутри него снять все чекбоксы. Опять же непонятно, как быдет на javascript действие правильное onchange? Или какой там аналог есть, коорый будет слушать изменения. Вобщем понятно, что вопрос немного не туда задал. Здесь "детям" ничего не рассказывают :) И я не религиозен.
JavaScript:
element.parentElement.style.display = '';
или
JavaScript:
window.getComputedStyle(element.parentElement, null).display = '';
Вам суда
 
Последнее редактирование:
Сверху