Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <script>
- addEventListener("DOMContentLoaded", (event) => {
- document.addEventListener('change', (e) => {
- const checkbox = e.target;
- if (!checkbox.classList.contains('form__checkbox')) return;
- // 1. Ищем общего родителя-обертку.
- // Если его нет, ограничиваемся текущей группой.
- const wrapper = checkbox.closest('.checkbox-wrapper');
- const group = checkbox.closest('[data-type-field="checkbox_group"]');
- // Определяем контекст поиска: либо весь wrapper, либо только одна группа
- const scope = wrapper || group;
- if (!scope) return;
- // 2. Находим все чекбоксы в пределах этого контекста
- const checkboxes = scope.querySelectorAll('.form__checkbox');
- // Находим опцию "Не важно" (ищем именно в текущем контексте)
- const notImportant = [...checkboxes].find(
- cb => cb.value.trim() === 'Не важно'
- );
- if (!notImportant) return;
- // ЛОГИКА ВЗАИМОИСКЛЮЧЕНИЯ
- // Если кликнули "Не важно"
- if (checkbox === notImportant) {
- if (checkbox.checked) {
- // Снимаем галочки со ВСЕХ остальных в пределах scope
- checkboxes.forEach(cb => {
- if (cb !== notImportant) {
- cb.checked = false;
- }
- });
- }
- } else {
- // Если кликнули любой другой чекбокс — выключаем "Не важно"
- if (checkbox.checked) {
- notImportant.checked = false;
- }
- }
- });
- });
- </script>
Advertisement
Add Comment
Please, Sign In to add comment