Django - 在select标签中获取未使用/所有选项

时间:2016-08-30 00:48:23

标签: jquery django

我使用的是POST表单,但我不确定这是否是最佳方式。

我有这个:

<form name='main' method="POST" action={{submit}}> 
<select class='form-control' size=10 id="test" name='test' multiple>
<option>Test1</option>
<option>Test2</option>
<option>Test3</option>
<option>Test4</option>
</select>
<input type="submit"/>
</form>

如果我使用request.POST.getlist(&#39; test&#39;),我只会获得突出显示的选项。但是,我想要选择标记中的所有选项。

离。

def myapp_submit(request):
    #This method doesn't exist
    print request.POST.getalloptions

无论是否选中,都会给我所有选项。

['Test','Test2','Test3','Test4']

我为什么要这样做?

我使用Jquery使用两个选择列表,您可以从一个列表中选择选项并将其放入另一个列表中。当用户提交时,我想知道每个选择列表中保留哪些选项。

更新 -

Adam Brenecki说这种方法永远不会存在。我能做的是使用JQuery迭代我的所有列表并更改所选的所有选项。但是,我可以帮忙解决这个问题吗?

    //How can I change all options to selected
    $('#test').ChangeOptionToSelected;

1 个答案:

答案 0 :(得分:1)

不存在这样的选项,因为该数据首先没有发送到服务器;只有选定的值是。

由于您已经在客户端使用JavaScript,因此您可以通过编程方式填充隐藏的表单字段,或者以其他方式将所需的值发送到服务器。

要考虑的另一件事是,您希望有两个列表,一个&#39;选择&#39;并且&#39;未选中&#39;一个可视化,但概念您正在做的是从列表中选择多个项目,这就是单个<select multiple />的用途。

最好让底层表单字段为正常工作的单个<select multiple />,然后在JavaScript中构建所需的UI,从视图中隐藏原始表单字段并更新它。这样,关闭JavaScript的访问者仍然可以获得有用的功能,并且可能更容易使其可访问。