Select2:如何防止标签排序

Iva*_*n Z 13 jquery jquery-select2

当用户选择许多项目(标签)时,它们会按字母顺序自动排序.如何使用Select2 4.0防止自动排序并保持用户的订单?

更新:

提到的"可能的dublicate问题"是针对旧版本的Select2 v3 ...我问的是版本4 ...它与旧版本不同,并提到答案不能解决问题.

Iva*_*n Z 40

我找到了一个适用于Select2 v4的解决方案.它会更改项目的顺序 - 用户选择的项目将移动到最后.

$("select").select2();

$("select").on("select2:select", function (evt) {
  var element = evt.params.data.element;
  var $element = $(element);
  
  $element.detach();
  $(this).append($element);
  $(this).trigger("change");
});
Run Code Online (Sandbox Code Playgroud)
<link href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.css" rel="stylesheet"/>

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.js"></script>

<select style="width: 500px;" multiple="multiple">
  <option>two</option>
  <option>four</option>
  <option>six</option>
</select>
Run Code Online (Sandbox Code Playgroud)

更新

解决方案在这里找到:github.com/select2/select2/issues/3106.它的作者是凯文棕色.

  • 您应该归功于找到解决方案的位置:https://github.com/select2/select2/issues/3106 (2认同)
  • 当“closeOnSelect”设置为 false 时,这会更改下拉列表的顺序 (2认同)
  • 这也在重新排列下拉列表。我不希望下拉列表改变。我只想从输入框中删除字母顺序。有解决方法吗? (2认同)