Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Разрешить выбор <optgroup> в select multiple (https://javascript.ru/forum/dom-window/72071-razreshit-vybor-optgroup-v-select-multiple.html)

Nik_Dev 05.01.2018 17:16

Разрешить выбор <optgroup> в select multiple
 
Помогите довести до ума.
Пытаюсь реализовать выбор пункта optgropup (чтобы он был кликабельным).
Чтобы нажимая на него, выбирались все пункты option, которые в optgroup.

Вот сам Select:

<select data-placeholder="Выберите категорию" class="chosen-select" multiple="multiple" style="width:250px;" name="cat">
<optgroup class="ruby" label="Дорожно-строительная Техника">
<option class="black" value="22">Асфальтоукладчик</option>
<option class="black" value="23">Грейдер</option>
<option class="black" value="21">Дорожная фреза</option>
<option class="black" value="20">Каток</option>
</optgroup>
<optgroup class="ruby" label="Строительная Техника">
<option class="black" value="16">Бульдозер</option>
<option class="black" value="14">Гусеничный экскаватор</option>
<option class="black" value="13">Колесный экскаватор</option>
<option class="black" value="18">Мини погрузчик</option>
<option class="black" value="12">Телескопический погрузчик</option>
<option class="black" value="15">Фронтальный погрузчик</option>
<option class="black" value="17">Экскаватор-погрузчик</option>
</optgroup>


Вот скрипт:

$('optgroup').click(function (){
var selectActive = $("#id").find('option:not("[selected]")').length;
if(selectActive == 0){
$("#id").find('option').prop('selected', false).removeAttr('selected');
$("#e_skills").selectpicker('render');
}else{
$("#id").find('option').prop('selected', true).attr('selected', 'selected');
$("#e_skills").selectpicker('render');
}
});

Заранее благодарю )

laimas 05.01.2018 17:48

selectpicker заменяет список списком ul-li, в котором и производится выбор и в котором optgroup не будет.

Nik_Dev 06.01.2018 22:35

Благодарю :)

laimas 07.01.2018 04:40

Не за что. Данный плагин сохраняет имена классов опций источника перенося их и в LI. Некогда возникла такая же необходимость, поэтому в плагин было внесено дополнение - опции списка с определенным классом выводились выделенными как родительские. Все выглядит как и в списке с optgroup. В событие выбора добавлено - если текущий элемент определенного класса, то выбрать и все элементы ему принадлежащие.


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