select2 - 如果多个选项共享一个值,则返回错误的选定选项

时间:2015-01-05 02:09:45

标签: javascript jquery jquery-select2 optgroup select2-rails

我有一个包含多个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时,&#39; Potato&#39;已被选中,$('#food_select').find(:selected)会返回&#39; Apple&#39;选项,这是第一个选项,其值为&#39; 1&#39;。

所有其他选定的选项都正常工作,因此似乎select2未正确处理重复值。我在http://jsfiddle.net/e57m9cax/创建了一个演示此行为的JSFiddle。

是否有针对此行为的解决方法或修复方法?

我可以将它分成两个单独的选择元素,但不是因为UX的原因。任何方向都会受到赞赏。

感谢。

1 个答案:

答案 0 :(得分:0)

来自Kevin Brown的合作者:

  

这是一个已知问题,由于内部结构的结构如何为3.5,因此无法在3.x版本中修复。

     

幸运的是,它已经修复了4.0,很快就会进入第一个测试阶段

因此解决方法是在select2 4.0发布之前使用单独的选择。