如何按照选择顺序获取多选列表框中所选项目?

3
我有一个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>

3
你需要跟踪变化,参考此问题以获取一些想法:https://dev59.com/gk_Sa4cB1Zd3GeqP-0Aa - Mark Schultheiss
我也需要同样的东西.. 我想知道最后选择的选项,我在@https://dev59.com/gk_Sa4cB1Zd3GeqP-0Aa找到了答案.. 感谢Mark.. - Ankit Sharma
2个回答

1

要按选定的顺序获取所选值,请尝试以下方法:

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

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

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

演示


这将获取所有选定的选项,但不按它们被点击的顺序排序。 - Sam Tyson
@SamTyson 你好,如果你浏览所有的演示,你会看到他们是按顺序给出价值的。 - thecodeparadox
问题的核心在于,我可以先点击最后一个选项,然后点击第一个选项,从而得到这个序列的结果 - 而不是预定义选择的顺序。 - Sam Tyson
@thecodeparadox,抱歉回复晚了。我已经检查了你的代码,它可以正常工作,它给我返回了在列表框中选择的值,但是它们的顺序不是用户选择的顺序,而是按照列表框的顺序排列的。感谢你的帮助,你能否提供解决方案? - sp_m

-2

试试这个 jQuery,

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

1
什么是多选?在jquery文档中并不存在这个功能。我认为你想到的是某种插件。 - Liam
如果您想使用这种方法,这个解决方案缺少这个库:http://loudev.com/ 或许您可以添加它。我会帮助您提高声誉。 - Federico Navarrete

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接