Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Условия в checkbox для группы (https://javascript.ru/forum/misc/54103-usloviya-v-checkbox-dlya-gruppy.html)

k_DizeL 03.03.2015 18:38

Условия в checkbox для группы
 
Имеется такая схема:

<input type="checkbox" onchange="est()" value="3000" id="glv" />
        <label for="cms">Главный чекбокс</label>
    <div id="modules">
    	 <input type="checkbox" onchange="est()" value="1000" id="otz" />
               <label for="otz">1</label><br>
    	 <input type="checkbox" onchange="est()" value="1000" id="news" />
               <label for="news">2</label><br>
    	 <input type="checkbox" onchange="est()" value="1000" id="photo" />
               <label for="photo">3</label><br>
    </div>


Как при выборе любого checkbox из группы #modules автоматически ставилась галочка с #glv.
В случае, если убирается галочка из любого пункта группы #modules, галочка с #glv всеравно остается активной

рони 03.03.2015 18:43

k_DizeL,
а если со всех #modules убрали тогда как ?

рони 03.03.2015 18:48

k_DizeL,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script>
      function est()
      {
         event.target.checked && (glv.checked = true);
      }
  </script>
</head>

<body>
<input type="checkbox" onchange="est()" value="3000" id="glv" />
        <label for="cms">Главный чекбокс</label>
    <div id="modules">
    	 <input type="checkbox" onchange="est()" value="1000" id="otz" />
               <label for="otz">1</label><br>
    	 <input type="checkbox" onchange="est()" value="1000" id="news" />
               <label for="news">2</label><br>
    	 <input type="checkbox" onchange="est()" value="1000" id="photo" />
               <label for="photo">3</label><br>
    </div>

</body>

</html>

k_DizeL 03.03.2015 18:51

Цитата:

Сообщение от рони (Сообщение 359440)
k_DizeL,
а если со всех #modules убрали тогда как ?

Если поставили хоть 1 галочку в #modules то автоматом ставится галочка в #glv.
Если галочки в #modules убрали, то на #glv галочка убралась.

Более жесткая логика, но по моему она ни как не реализуется (Но хотелось бы):
А вот если вначале поставили галочку в #glv, а после в #modules поставили хоть 1 галочку , потом ее убрали то в #glv галочка все равно остается активной (Приоритет на ручной выбор)

k_DizeL 03.03.2015 18:59

document.querySelectorAll('#modules > [type="checkbox"]').event.target.checked && (glv.checked = true);

document.getElementById('otz').event.target.checked && (glv.checked = true);

document.querySelectorAll('#modules [type="checkbox"]').event.target.checked && (glv.checked = true);

Нужно ограничится лишь div с #modules
Мои колхозные варианты не прокатили

рони 03.03.2015 19:07

k_DizeL, почитайте про делегирование и ставьте обработку клик только на #modules
event.target.parentNode.id == 'modules' &&
         event.target.checked && (glv.checked = true);

k_DizeL 03.03.2015 19:09

рони, Спасибо за новые знания в пустую копилку


Часовой пояс GMT +3, время: 21:03.