Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.02.2016, 19:49
Интересующийся
Отправить личное сообщение для Beactive Посмотреть профиль Найти все сообщения от Beactive
 
Регистрация: 24.04.2014
Сообщений: 13

Список чекбоксов по клику на главный чекбокс
Проблема в следующем. при нажатии на чекбокс, должны показываться остальные чекбоксы, усложняется тем, что id главного чекбокса динамичен. Просидел пол дня, переискал кучу решений, можно задать display-none главному элементу, но тогда не получается обратиться к остальным по ul. Ссылку прилагаю https://jsfiddle.net/Pimpleks/2u2frzjj/
Ответить с цитированием
  #2 (permalink)  
Старый 29.02.2016, 20:08
Новичок на форуме
Отправить личное сообщение для bl0zis Посмотреть профиль Найти все сообщения от bl0zis
 
Регистрация: 10.03.2015
Сообщений: 1

mm
Ответить с цитированием
  #3 (permalink)  
Старый 29.02.2016, 20:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Beactive,
чуть изменить label ...
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
     .popular-category :checked ~ ul {
       display: block;
     }
     .popular-category  ul {
       display: none;
     }
  </style>
  </head>

<body>
<li id="vehicle_models-29" class="popular-category"><input value="29" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-29" class=""><label for="in-vehicle_models-29" class="selectit">Alfa Romeo</label><ul class="children" >

<li id="vehicle_models-173" class=""><label class="selectit"><input value="173" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-173" class=""> 145</label></li>

<li id="vehicle_models-174" class=""><label class="selectit"><input value="174" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-174" class=""> 146</label></li>

<li id="vehicle_models-175" class=""><label class="selectit"><input value="175" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-175" class=""> 147</label></li>

<li id="vehicle_models-176" class=""><label class="selectit"><input value="176" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-176" class=""> 155</label></li>

<li id="vehicle_models-177" class=""><label class="selectit"><input value="177" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-177" class=""> 156</label></li>

<li id="vehicle_models-178" class=""><label class="selectit"><input value="178" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-178" class=""> 159</label></li>

<li id="vehicle_models-179" class=""><label class="selectit"><input value="179" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-179" class=""> 164</label></li>

<li id="vehicle_models-180" class=""><label class="selectit"><input value="180" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-180" class=""> 166</label></li>

<li id="vehicle_models-181" class=""><label class="selectit"><input value="181" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-181" class=""> 33</label></li>

<li id="vehicle_models-182" class=""><label class="selectit"><input value="182" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-182" class=""> 75</label></li>

<li id="vehicle_models-183" class=""><label class="selectit"><input value="183" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-183" class=""> 90</label></li>

<li id="vehicle_models-184" class=""><label class="selectit"><input value="184" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-184" class=""> Alfasud</label></li>

<li id="vehicle_models-185" class=""><label class="selectit"><input value="185" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-185" class=""> Alfetta</label></li>

<li id="vehicle_models-186" class=""><label class="selectit"><input value="186" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-186" class=""> Arna</label></li>

<li id="vehicle_models-187" class=""><label class="selectit"><input value="187" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-187" class=""> Brera</label></li>

<li id="vehicle_models-188" class=""><label class="selectit"><input value="188" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-188" class=""> GT</label></li>

<li id="vehicle_models-189" class=""><label class="selectit"><input value="189" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-189" class=""> GTV</label></li>

<li id="vehicle_models-190" class=""><label class="selectit"><input value="190" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-190" class=""> Guilietta</label></li>

<li id="vehicle_models-191" class=""><label class="selectit"><input value="191" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-191" class=""> MiTo</label></li>

<li id="vehicle_models-192" class=""><label class="selectit"><input value="192" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-192" class=""> Montreal</label></li>

<li id="vehicle_models-193" class=""><label class="selectit"><input value="193" type="checkbox" name="tax_input[vehicle_models][]" id="in-vehicle_models-193" class=""> Spider</label></li>
</ul>
</li>
</body>

</html>
Ответить с цитированием
  #4 (permalink)  
Старый 29.02.2016, 20:39
Интересующийся
Отправить личное сообщение для Beactive Посмотреть профиль Найти все сообщения от Beactive
 
Регистрация: 24.04.2014
Сообщений: 13

Сообщение от рони Посмотреть сообщение
Beactive,
чуть изменить label ...
За счет чего срабатывает ? css? и что значит в css символ бесконечности при checked ?
Ответить с цитированием
  #5 (permalink)  
Старый 29.02.2016, 20:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Beactive,
+ следующий
~ где-то дальше
срабатывает потому что стало можно использовать состояние :checked инпута перед ul
https://webref.ru/css/selector/sibling
Ответить с цитированием
  #6 (permalink)  
Старый 01.03.2016, 00:15
Интересующийся
Отправить личное сообщение для Beactive Посмотреть профиль Найти все сообщения от Beactive
 
Регистрация: 24.04.2014
Сообщений: 13

Да все работает, но класс class="popular-category" не во всех категориях - вывод - не все пункты свернуты. К чему можно привязать? Ну и туда же вопрос, если выделена главная категория, то запрет на отметку более одного чекбокса все равно через js реализовывать?
Ответить с цитированием
  #7 (permalink)  
Старый 01.03.2016, 01:46
Интересующийся
Отправить личное сообщение для Beactive Посмотреть профиль Найти все сообщения от Beactive
 
Регистрация: 24.04.2014
Сообщений: 13

Вообщем сделал класс еще один для непопулярных и добавил в css такой же код, а вот вопрос с выбором главного и одного дополнительного чекбокса остается открытым.
Ответить с цитированием
  #8 (permalink)  
Старый 01.03.2016, 01:47
Интересующийся
Отправить личное сообщение для Beactive Посмотреть профиль Найти все сообщения от Beactive
 
Регистрация: 24.04.2014
Сообщений: 13

Нашел вот такое код, но без html не могу понять к чему привязка
$(document).ready(function(){
$('#fixed').hide();
$('#tovar .ctrl_products_cmp').change(function(){
var checkbuttons = 0;
$('#tovar .ctrl_products_cmp').each(function(){
if ($(this).is(':checked')) {
checkbuttons++;
}
});
if (checkbuttons >= 2) {
$('#fixed').fadeIn('600');
} else {
$('#fixed').fadeOut('600');
}
});
});
Ответить с цитированием
  #9 (permalink)  
Старый 01.03.2016, 01:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Сообщение от Beactive
класс class="popular-category"
классы то кто формирует, не вы?
Сообщение от Beactive
К чему можно привязать?
ваша структура известна только вам
Сообщение от Beactive
запрет на отметку более одного чекбокса все равно через js реализовывать?
... ой ... а что type="radio" у вас под запретом
можно и на js если знать структуру, но если структура в ваших руках то js не нужен
Ответить с цитированием
  #10 (permalink)  
Старый 01.03.2016, 03:06
Интересующийся
Отправить личное сообщение для Beactive Посмотреть профиль Найти все сообщения от Beactive
 
Регистрация: 24.04.2014
Сообщений: 13

Хочу сделать элементы неактивными, не срабатывает

var f = document.querySelector('input').value;
f.onchange = function() {
  var n = f.querySelectorAll('[type="checkbox"]'),
      l = f.querySelectorAll('[type="checkbox"]:checked');
  for(var j=0; j<n.length; j++)
    if (l.length >= 2) { 
      n[j].disabled = true; 
      for(var i=0; i<l.length; i++)
        l[i].disabled = false; 
    } else {
      n[j].disabled = false; 
    }
}

https://jsfiddle.net/Pimpleks/2u2frzjj/3/
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выпадающий список по клику gorbuz9kin Общие вопросы Javascript 16 28.10.2015 15:02
Как выбрать один чекбокс из группы чекбоксов Hol1killer Общие вопросы Javascript 2 25.10.2013 17:26
Задать атрибут readonly по клику на чекбокс и назад PashPP Общие вопросы Javascript 16 27.07.2012 17:03
Чекбокс (переключатель группы чекбоксов) DVNSA Общие вопросы Javascript 6 15.08.2011 14:38
Выделить группу чекбоксов. В группе может быть только один чекбокс. JooZ Элементы интерфейса 2 23.12.2009 19:28