我有一个带有多个 optgroup 的 select 元素,其中不同 optgroup 中的选项可能具有相同的值。例如(参见“Apple”和“Potato”选项):
<select data-placeholder="Fruit/Veg" id="food_select">
<option value=""></option>
<optgroup label="Fruits">
<option data-params="{'selected_type':'Fruit'}" value="1">Apple</option>
<option data-params="{'selected_type':'Fruit'}" value="2">Pear</option>
<option data-params="{'selected_type':'Fruit'}" value="3">Banana</option>
</optgroup>
<optgroup label="Veg">
<option data-params="{'selected_type':'Veg'}" value="1">Potato</option>
<option data-params="{'selected_type':'Veg'}" value="4">Cabbage</option>
<option data-params="{'selected_type':'Veg'}" value="5">Bean</option>
</optgroup>
</select>
使用普通选择,尝试使用 jQuery 查找所选选项会产生正确的结果。
$('#food_select').find(:selected)
但是,当应用 select2 并选择$('#food_select').find(:selected)
了 'Potato' 时,返回 'Apple' 选项,这是第一个值为 '1' 的选项。
所有其他选定的选项都可以正常工作,因此 select2 似乎没有正确处理重复值。我创建了一个展示这种行为的 JSFiddle,位于:http: //jsfiddle.net/e57m9cax/。
这种行为是否有解决方法或修复方法?
我可以将其拆分为两个单独的选择元素,但不是出于 UX 原因。任何方向将不胜感激。
谢谢。