Забыли пароль?
Запросите новый здесь.

Автор темы: Zaxap
ID темы: 2425
Информация:
Тема содержит 7 сообщения, была просмотрена 5673 раз.
Просмотр темы
PHP-Fusion Russia » Веб-разработка » Javascript, ajax, jquery
 Распечатать тему
Список с checkbox. Как отметить дочерний ceckbox при выборе родительского?
Zaxap
Загрузить источник  GeSHi: HTML
  1. <ul>
  2. <li class="file">
  3. <input type="checkbox" id="1">
  4. <label for="1">1</label>
  5. <ul>
  6. <li>
  7. <input type="checkbox" id="1_2">
  8. <label for="1_2">1_2</label>
  9. </li>
  10. <li>
  11. <input type="checkbox" id="1_3">
  12. <label for="1_3">1_3</label>
  13. <ul>
  14. <li>
  15. <input type="radio" name="1_3" id="1_3_1">
  16. <label for="1_3_1">1_3_1</label>
  17. </li>
  18. <li>
  19. <input name="1_3" type="radio" id="1_3_2" value="1_3_2">
  20. <label for="1_3_2">1_3_2</label>
  21. </li>
  22. <li>
  23. <input name="1_3" type="radio" id="1_3_3" value="1_3_3">
  24. <label for="1_3_3">1_3_3</label>
  25. </li>
  26. <li>
  27. <input type="checkbox" disabled id="1_3_yes" value="1_3_yes" checked>
  28. <label for="1_3_yes">1_3_yes</label>
  29. </li>
  30. </ul>
  31. </li>
  32. <li>
  33. <input type="checkbox" id="1_4">
  34. <label for="1_4">1_4</label>
  35. </li>
  36. </ul>
  37. </li>
  38. </ul>
  39. </form>
Добавлено за 0.012 секунд, используя GeSHi 1.0.8.10


Имеется такого вида список. Необходимо при выборе-снятии любого checkbox'а выбрать/снять галочку с дочерних checkbox внутри по списку (именно с дочерних, а не с внучатых и прочих)...
Как это можно сделать на чистом js?.. именно такого рода "универсальную" функцию... если указывать id и т.п. - это и я могу...;)
Зло не дремлет, а я добрый...
 
Polarfox
Прикрепи им класс, и чекай все боксы такого-то класса.
Либо - все дочерние обходи и тоже чекай.

Фреймворки все сделают, а вручную - ну идею ты понял.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
 
Web
Zaxap
PolarFox, ну я уже сделал эту шнягу (сейчас скину код):

Загрузить источник  GeSHi: Javascript
  1. var checkbox = document.getElementsByTagName('li');
  2. for(var i = 0; i < checkbox.length; i++) {
  3. if(checkbox[i].getElementsByTagName('ul')[0])
  4. checkbox[i].getElementsByTagName('input')[0].addEventListener('click',redirect,false);
  5. }
  6. function redirect(){
  7. var $this = this.parentNode.getElementsByTagName('ul')[0];
  8. (this.checked) ? $this.style.display='inherit' : $this.style.display='none';
  9. }
Добавлено за 0.003 секунд, используя GeSHi 1.0.8.10

Зло не дремлет, а я добрый...
 
Polarfox
С жк проще.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
 
Web
Zaxap
PolarFox, ну jq весит на килобайт, так, минимум 60 больше... (а это еще и в сжатом виде)...
у меня там свои сокращалки стандартных функций...
просто тут сделал стандарт, чтобы всем было понятно, всем можно было использовать)
Зло не дремлет, а я добрый...
 
Polarfox
В том и дело что там куча корректировок чтоб все браузеры понимали, в тч старые, редкие и кривые.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
 
Web
Zaxap
PolarFox, по-моему, это слишком простой код - его должны понять все, даже браузеры... это ведь не Ajax-запрос, не отправка e-mail путем js... - это просто переход по DOM-дереву...
Поправьте, если ошибаюсь :)
---
Глянул поддерживаемость браузерами: действительно, addEventListener, например (почему "например"... именно он)) не поддерживается IE ниже 9... ок, будем искать)))
---
Загрузить источник  GeSHi: Javascript
  1. function addClickEvent(elem, func)
  2. (element.addEventListener) ? return elem.addEventListener(click, func, false) : return elem.attachEvent('onclick', func);
  3.  
  4. var checkbox = document.getElementsByTagName('li');
  5. for(var i = 0; i < checkbox.length; i++) {
  6. if(checkbox<i>.getElementsByTagName('ul')[0])
  7. addClickEvent(checkbox[i].getElementsByTagName('input')[0], redirect);
  8. }
  9. function redirect(){
  10. var $this = this.parentNode.getElementsByTagName('ul')[0];
  11. (this.checked) ? $this.style.display='inherit' : $this.style.display='none';
  12. }
Добавлено за 0.003 секунд, используя GeSHi 1.0.8.10


Вот так вот должно поддерживаться [i]всеми браузерами...
Изменил(а) Zaxap, 08.02.2015 10:17
Зло не дремлет, а я добрый...
 

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Темы Форум Ответов / Просмотров Последние сообщения
Как определить необходимые мощности хостинга для группы сайтов с определённой посещалкой?  →  Хостинг 0 / 16 20.02.2019 20:46
Как перейти с http на https  →  Вопросы новичков 20 / 19456 19.02.2019 22:19
Сделать ответыт на фриланс биржах на CURL - как?  →  PHP 1 / 288 05.11.2018 12:43
Возможно ли при помощи тестов (вопросов) проверить совместимость М и Ж?  →  Разное 2 / 965 04.11.2018 17:24
Ваш топ 5 список ежедневных сайтов  →  Флуд 16 / 6125 07.10.2018 10:58
Проблема при установке  →  Установка и настройка системы 11 / 2187 18.09.2018 14:28
Важно! 2 месяца бесплатно, при продлении или заказе dedicated сервера! Акция!  →  Хостинг 0 / 466 07.06.2018 04:37
Лендингоподобная главная - как заверстать адаптивно в CSS?  →  Пожелания и предложения 2 / 1685 24.04.2018 13:13
Как найти в БД для панели "похожие статьи, новости, темы"?  →  Пожелания и предложения 0 / 753 23.04.2018 17:29
Как защититься от спамеров? капча есть, но она легко вводится  →  Моды 11 / 8525 26.02.2018 19:52
Топ 5 пользователей форума
Alex Alex (1,203)   Zaxap Zaxap (1,089)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)