Как заблокировать выделение некоторых 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

→ Ссылка