Как заблокировать выделение некоторых checkbox по условию?
Как заблокировать выделение некоторых checkbox по условию? К примеру, если выделен input[value="Animals"], чтобы нельзя было выделить input[value="Insects"] и наоборот?
Этот пример является минифицированным, чекбоксов и параметров исключения гораздо больше, хотелось бы узнать по какой логике задаются условия.
<label>
<input type="checkbox" value="Animals">
Животные
</label>
<label>
<input type="checkbox" value="Insects">
Насекомые
</label>
Ответы (1 шт):
Всё просто:
создаёте в JS коде мапы с зависимостями и ими потом оперируете. Например
let map = {animal: ['insects', 'flies', 'auto'], cars: ['cats', 'burgers', 'phones']}
При выборе чекбокса, считываете его данные, и по ключу из объекта вынимаете массив с наименованиями того, что нужно заблочить. В цикле делаете это.
P.S. Кстати, лучше для таких целей оперировать не атрибутом value, а data- атрибутами.
P.P.S. В качестве мапы можно использовать как обычный объект, так и специальный тип, который так и называется: Map