Отключить невыбранные параметры из optgroup в раскрывающемся списке с множественным выбором с помощью jquery

В моем мультиселекте у меня есть несколько групп опций. Я хочу разрешить пользователю выбирать только один вариант из optgroup. Как только пользователь выбирает любую опцию из любой группы опций, я хочу отключить все остальные опции из той же группы, а не для других групп опций. Я пробовал следующий код Html

    <option selected="selected" label="All" value="">All</option>
<optgroup label="fruits" class="fruit">
    <option label="apple" value="1">Apple</option>
    <option label="pear" value="2">Pear</option>
    <option label="orange" value="3">Orange</option>
</optgroup>
<optgroup label="berries" class="berries">
    <option label="strawberry" value="4">Strawberry</option>
    <option label="raspberry" value="5">Raspberry</option>
    <option label="blueberry" value="6">Blueberry</option>
</optgroup>

Javascript:

$("#fruits").change(function () {
    $("#fruits option").filter(":selected").parent("optgroup").prop('disabled', true);
});

Ссылка Jsbin jsbin

приведенный выше код отключает все параметры из определенной группы опций, я хочу, чтобы выбранный параметр не отключался.


person Sandip Pingle    schedule 13.09.2013    source источник
comment
Вы должны разместить свой код здесь, в дополнение к jsbin   -  person Vlad    schedule 13.09.2013
comment
Так в чем твой вопрос?   -  person Vlad    schedule 13.09.2013
comment
.filter(":selected") это выбор всех выбранных элементов.   -  person melancia    schedule 13.09.2013


Ответы (1)


JS-бин

Вместо этого:

.parent('optgroup')

Сделай это:

.siblings('option')
person musicnothing    schedule 13.09.2013