持久选择多选列表框条目

时间:2014-07-28 23:27:32

标签: jquery html django django-templates listbox-control

我有一个HTML表单。提交后我需要保持选中每个表单控件的选定项目。这适用于单选按钮,复选框,下拉列表,但不适用于我的多选列表框。我也需要这种能力,所以我可以将表单数据传递给jquery函数来执行其他任务。该过程适用于没有多选列表框的其他页面。我正在使用Django服务器端,通常做一个' for循环'或者' if statement'检查用户选择。我可以从我的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>

2 个答案:

答案 0 :(得分:1)

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

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

和JSON:

JSON.stringify(arrVal);

如果你想要你可以将它作为JSON返回,并用js \ jq解析它到数组:

var arrJson = JSON.parse(THE_JSON_STRING);

并设置所选项目:

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

获取&amp;设置演示:http://jsfiddle.net/ZA82M/2/

答案 1 :(得分:0)

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

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