Igor150195

не важно

Feb 2nd, 2026
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. <script>
  2. addEventListener("DOMContentLoaded", (event) => {
  3. document.addEventListener('change', (e) => {
  4. const checkbox = e.target;
  5. if (!checkbox.classList.contains('form__checkbox')) return;
  6.  
  7. // 1. Ищем общего родителя-обертку.
  8. // Если его нет, ограничиваемся текущей группой.
  9. const wrapper = checkbox.closest('.checkbox-wrapper');
  10. const group = checkbox.closest('[data-type-field="checkbox_group"]');
  11.  
  12. // Определяем контекст поиска: либо весь wrapper, либо только одна группа
  13. const scope = wrapper || group;
  14. if (!scope) return;
  15.  
  16. // 2. Находим все чекбоксы в пределах этого контекста
  17. const checkboxes = scope.querySelectorAll('.form__checkbox');
  18.  
  19. // Находим опцию "Не важно" (ищем именно в текущем контексте)
  20. const notImportant = [...checkboxes].find(
  21. cb => cb.value.trim() === 'Не важно'
  22. );
  23.  
  24. if (!notImportant) return;
  25.  
  26. // ЛОГИКА ВЗАИМОИСКЛЮЧЕНИЯ
  27.  
  28. // Если кликнули "Не важно"
  29. if (checkbox === notImportant) {
  30. if (checkbox.checked) {
  31. // Снимаем галочки со ВСЕХ остальных в пределах scope
  32. checkboxes.forEach(cb => {
  33. if (cb !== notImportant) {
  34. cb.checked = false;
  35. }
  36. });
  37. }
  38. } else {
  39. // Если кликнули любой другой чекбокс — выключаем "Не важно"
  40. if (checkbox.checked) {
  41. notImportant.checked = false;
  42. }
  43. }
  44. });
  45. });
  46. </script>
Advertisement
Add Comment
Please, Sign In to add comment