Деактивирайте неизбраните опции от optgroup в падащото меню multiselect с помощта на jquery

В моя мултиселект имам няколко групи опции. Искам да позволя на потребителя да избере само една опция от optgroup. Щом потребителят избере която и да е опция от която и да е optgroup, искам да деактивирам всички други опции от същата група, но не и за други optgroups. Опитах да следвам кода 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

кодът по-горе деактивира всички опции от определена optgroup, искам избраната опция да не е деактивирана.


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 Bin

Вместо да направите това:

.parent('optgroup')

Направите това:

.siblings('option')
person musicnothing    schedule 13.09.2013