持久选择多选列表框条目

Posted

技术标签:

【中文标题】持久选择多选列表框条目【英文标题】:Persistent Selection Multiselect Listbox Entries 【发布时间】:2014-09-20 06:30:56 【问题描述】:

我有一个 html 表单。提交后,我需要让每个表单控件的选定项目保持选中状态。这适用于单选按钮、复选框、下拉列表,但不适用于我的多选列表框。我也需要这种能力,这样我就可以将表单数据传递给一个 jquery 函数来执行其他任务。该过程适用于没有多选列表框的其他页面。我正在使用 Django 服务器端,通常会执行“for 循环”或“if 语句”来检查用户选择。我可以从我的 javascript 中将选择作为列表获取,但在 Chrome 网络面板中,它会将列表项作为单独的表单变量提供。获取这种格式的方法是什么?

更新 meni181818 提供的 jfiddle 应该可以工作,我认为这是正确的方向。但是,我已将我的页面更新为仅包含此代码,但它不起作用。我可以将代码复制到 jfiddle 中并让它工作,但不是在我的页面上。我不确定这是否是 Django 问题。页面上唯一的附加代码是:

<head>
    <script src="//code.jquery.com/jquery-1.10.2.js"></script>
    <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
</head>

【问题讨论】:

我已经尝试了一些排列,但我的选定选项列表总是比当前选定的选项落后一个帖子。我目前将该列表作为隐藏输入,其值等于meni181818 的答案中提供的设置脚本的结果。 【参考方案1】:

您可以将所有选定的项目作为数组获取:

arrVal = $("select").val();

到 JSON:

JSON.stringify(arrVal);

如果你愿意,你可以将它作为 JSON 返回,并使用 js\jq 将其解析为数组:

var arrJson = JSON.parse(THE_JSON_STRING);

并设置选中项:

$("select").val(arrJson);

获取和设置演示:http://jsfiddle.net/ZA82M/2/

【讨论】:

这似乎不适用于我的情况。我必须在循环中创建列表选项,我认为这可能是问题的一部分。 经过进一步测试,jfiddle中的确切代码在我的html代码中不起作用。我在 标记中拥有所有内容。【参考方案2】:

meni181818 提供的方法对我有用。由于我的特殊需要,我不得不改变一些事情。我使用隐藏输入而不是

标签,这意味着将 .text() 更改为 .val()。我需要这样做,以便我可以通过我的 Django 后端传递值并在发布表单后保留它们。

【讨论】:

以上是关于持久选择多选列表框条目的主要内容,如果未能解决你的问题,请参考以下文章

如何在excel VBA中同时多选多个列表框

章节十8-操作多选列表框

Access VBA 如何根据多选列表框中的选择过滤记录集?

ASP.NET MVC 多选列表框值未呈现

asp:gridview 过滤器使用列表框不能进行多选

Excel 下拉框是不是可以作为带有多选复选框的列表框?