【问题标题】:How do I get the selected items from a multi-select listbox in order that they were selected?如何从多选列表框中获取选定的项目以便它们被选中?
【发布时间】:2012-07-01 02:31:45
【问题描述】:

我有一个 Web 应用程序,我在其中使用页面加载时数据库中的项目填充列表框。

我从列表框中获取所有被选中的项目,但它们是按照它们填充的顺序排列的。

我希望这些项目按照用户选择的顺序排列。

我尝试使用 jQuery .change(function(),但它只返回第一个选定项的值。

我附上我的代码以供参考。我使用http://harvesthq.github.com/chosen/使用列表框

这是我的列表框:

   <asp:ListBox ID="dr_menuitem" runat="server" class="chzn-select" SelectionMode="Multiple" style="width:300px;" >
                    <asp:ListItem></asp:ListItem>
               </asp:Listbox>

这是我调用的 jQuery:

<script type="text/javascript">
           $(document).ready(function() {

               $('#dr_menuitem').change(function() {

                     alert($("#dr_menuitem option:selected").val());
                   });
           });

    </script>

【问题讨论】:

标签: jquery asp.net listbox multi-select


【解决方案1】:

要按选定顺序获取选定值,请尝试以下操作:

$("#dr_menuitem").change(function() {

   // $(this).val() will give you an array
   // of selected value in order
   // you've selected

   alert( $(this).val() );
});

DEMO

【讨论】:

  • 这将获得所有选定的选项,但不是按照它们被点击的顺序。
  • @SamTyson 嗨,朋友,如果您浏览所有演示,您会发现它们按顺序提供价值。
  • 有问题的想法是我可以单击最后一个选项,然后单击第一个选项,并获得该序列的结果 - 而不是预定义选择的顺序。
  • @thecodeparadox,抱歉回复晚了。我检查了你的代码,它工作正常,它给了我在列表框中选择的值,但它们不是用户选择的顺序,它们是按照列表框的顺序排列的。谢谢你的帮助,你能给出解决方案吗
【解决方案2】:

试试这个jquery,

$(document).ready(function () {
   $("#listbox").multiselect();
});

【讨论】:

  • 什么是多选?这在 jquery 文档中不存在。我认为你在想一些插件之王。
  • 如果你想使用这种方法,这个解决方案缺少这个库:loudev.com也许你可以添加它。我会帮你提高声望的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-14
  • 1970-01-01
  • 2011-02-26
  • 2018-02-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多