使用jquery在mulitiselect下拉列表中禁用optgroup中未选中的选项

时间:2013-09-13 19:02:53

标签: javascript jquery drop-down-menu

在我的多选中我有几个选择组。 我想允许用户只从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 Link jsbin

上面的代码禁用了特定optgroup的所有选项,我希望不要禁用所选的选项。

1 个答案:

答案 0 :(得分:1)

JS Bin

而不是这样做:

.parent('optgroup')

这样做:

.siblings('option')