【问题标题】:Simple sort for form result of select2 (js) form element?select2(js)表单元素的表单结果的简单排序?
【发布时间】:2014-09-13 09:33:58
【问题描述】:

我使用的是 ivaynberg 的 select2,但在提交时如何返回数据存在问题。

有没有什么方法可以在不使用可排序的拖放解决方案的情况下,按照它们在 select2 元素中选择的顺序在表单提交数据中获取结果? 假设有三个选项:

<option name=red value=red>red</option>
<option name=blue value=blue>blue</option>
<option name=green value=green>green</option>

在一个多重 select2 元素中,选择先是绿色然后是红色(在呈现的元素中,绿色位于红色的前面)。提交表单时,数组返回:

[select2] => Array
 (
  [0] => red
  [1] => green
 )

按照它们在初始 html 数据中出现的顺序。 但我想通过按选择的顺序输出提交数据来记录用户选择这些值的顺序,如下所示:

[select2] => Array
 (
  [0] => green
  [1] => red
 )

我可以使用 select2 中的任何开关或选项来执行此操作吗? (有点 JS 新手,所以我没有理解这个很棒的功能提供的所有文档)。

【问题讨论】:

    标签: javascript php jquery-select2


    【解决方案1】:

    我从 jdecuyper 获得了一个出色的代码 sn-p,发布在我在 select2 github 问题页面上的原始线程上:

    如果您直接访问多选中的选定项目 然后你可以按照它们被选中的顺序阅读元素: http://jsfiddle.net/jdecuyper/zx7vZ/

    $("#m1").select2();
    
    $("#submit_selection").click(function () { 
    
        var selectedItems = "";
        var selectedItemIds = "";
        var separator = "";
        for(var i = 0; i < $("#m1").select2("data").length; i++)
        {
            selectedItems += separator + $("#m1").select2("data")[i]["text"];
            selectedItemIds += separator + $("#m1").select2("data")[i]["id"];
            separator = " ";
        }
        $("#m1selectedItem").val(selectedItems);
        $("#m1selectedItemIds").val(selectedItemIds);
    
    });
    

    向文本输入添加一个隐藏属性,该属性在提交时收集有序的 ID(或值),它的工作原理就像一个冠军。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-25
      • 1970-01-01
      • 2015-05-03
      • 1970-01-01
      • 1970-01-01
      • 2013-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多