【问题标题】:jQuery-select2 - Get values in the order they were selectedjQuery-select2 - 按它们被选择的顺序获取值
【发布时间】:2014-03-07 22:53:41
【问题描述】:

我正在开发一个包含多个多选的表单。我为此使用 Select2 库。

 $(".chosen-select").select2({
            allow_single_deselect: true,
            width: "150px"
        });
......
<select id="ship2" class="chosen-select" data-placeholder="Select vessel">
<option></option>
<option value="value1">title1</option>
<option value="value2">title2</option>
</select>

问题是,当我尝试获取选定值时,它们会按照&lt;select&gt; 元素中指定的顺序返回,而不是它们被选中的顺序:

var selectedDayPorts = $('#ship2');
var dayPorts = selectedDayPorts.select2("val");

有没有办法让它们按正确的顺序排列?

【问题讨论】:

    标签: jquery select multi-select jquery-select2


    【解决方案1】:

    有时这可能会有所帮助。在尝试了几种方法后,我想出了一个解决方法,使用我在用户 shashilo 上通过此链接获得的代码。 https://github.com/select2/select2/issues/3106

    但我不得不做一些安排,因为它对我的情况没有 100% 有效。 这是我的代码。

    $(".select2").on("select2:select", function (evt) {
              var element = evt.params.data.element;
              var $element = $(element);
    
              if ($(this).find(":selected").length > 1) {
                var $second = $(this).find(":selected").eq(-1);
                $second.after($element);
              } else {
                $element.detach();
                $(this).prepend($element);
              }
    
              $(this).trigger("change");
            });

    在他提到的链接中

    var $second = $(this).find(":selected").eq(-2);

    但对我有用的是

    var $second = $(this).find(":selected").eq(-1);

    在我的情况下,即使取消选择项目,这也很有效。

    【讨论】:

      【解决方案2】:

      你可以使用:

      var dayPorts = selectedDayPorts.select2("data");
      

      并获取值:

      alert(dayPorts[0]['id']);
      
      alert(dayPorts[0]['text']);
      

      【讨论】:

        【解决方案3】:

        我没有找到如何让 select2 以正确的顺序存储值的方法,所以我最终为每个 select2 字段创建了隐藏的输入字段,并在我添加/删除新值时相应地更新它

        【讨论】:

        • 即使没有人可以看到有效的答案,为什么会选择此选项...
        猜你喜欢
        • 2013-11-23
        • 2014-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-05
        相关资源
        最近更新 更多