Django表单提交下拉选择而不是提交按钮

时间:2015-04-23 02:32:01

标签: django forms drop-down-menu

我有一张包含大量作业数据的表格,我有一个下拉菜单和一个提交按钮,它充当过滤器,因此表格只显示基于过滤器的作业:

<form>
    <select id="user_id_dropdown" name="user_id">
        <option disabled selected>Filter by Username</option>
        <option value="all">All Usernames</option>
        <option disabled>────────────</option>
        {% for user in users %}
            <option value={{ user.id }}>{{ user.username }}</option>
        {% endfor %}
    </select>
    <input id="filter" class="btn btn-primary" type="submit" value="Filter" />
</form>

<table>
...

我是如何使用该按钮完成的,以便用户名的user_id作为查询字符串传递,我的视图处理它。选择用户名(比如说它的user_id为4)并点击提交按钮后,网址为:

http://...jobs?user_id=4

然后我在下面有一个表格,其中显示的所有作业现在只有user_id 4创建的作业。

问题是,现在我只想取消提交按钮,只需在下拉选项中提交表单。

我试图给表单命名,并在选择发生变化时提交:

<form name='filter' method=POST>
    <select id="user_id_dropdown" name="user_id" onChange="filter.submit();">
    ...

但这似乎不起作用。它看起来像页面重新加载(类似于提交按钮),但表格数据没有改变。我在这里错过了什么?

1 个答案:

答案 0 :(得分:0)

尝试将它放在你的onchange attr:

document.filter.submit();

如果失败,请为表单指定ID属性并执行:

document.getElementById('youFormId').submit();

您也可以将其作为GET参数发送,如:

onchange="window.locatio.href+='?v='+this.value;"

顺便说一句,这个问题与Django关系不大,下次你问这类东西时应该用html / javascript标记。