Django 表单提交下拉选择而不是提交按钮
Django form submit on dropdown selection rather than submit button
我有一个包含大量工作数据的 table,我有一个下拉菜单和一个提交按钮,它充当过滤器,因此 table 仅显示基于过滤器:
<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)并单击提交按钮后,url 为:
http://...jobs?user_id=4
然后我在下面有一个 table,其中显示的所有职位现在都只有 user_id
4
.
创建的职位
问题是,现在我只想取消提交按钮,只在下拉选择时提交表单。
我尝试给表单命名并在选择发生变化时提交:
<form name='filter' method=POST>
<select id="user_id_dropdown" name="user_id" onChange="filter.submit();">
...
但这似乎不起作用。看起来页面重新加载(类似于提交按钮),但 table 数据没有改变。我在这里错过了什么?
试着把这个放在你的 onchange 属性上:
document.filter.submit();
如果失败,请为您的表单提供 ID 属性并执行以下操作:
document.getElementById('youFormId').submit();
您也可以将其作为 GET 参数发送,例如:
onchange="window.locatio.href+='?v='+this.value;"
顺便说一句,这个问题与Django关系不大,下次再问这种问题时,请标记html/javascript。
我试过这个:
onChange="form.submit();"
它奏效了。似乎 name
没有必要。
我有一个包含大量工作数据的 table,我有一个下拉菜单和一个提交按钮,它充当过滤器,因此 table 仅显示基于过滤器:
<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)并单击提交按钮后,url 为:
http://...jobs?user_id=4
然后我在下面有一个 table,其中显示的所有职位现在都只有 user_id
4
.
问题是,现在我只想取消提交按钮,只在下拉选择时提交表单。
我尝试给表单命名并在选择发生变化时提交:
<form name='filter' method=POST>
<select id="user_id_dropdown" name="user_id" onChange="filter.submit();">
...
但这似乎不起作用。看起来页面重新加载(类似于提交按钮),但 table 数据没有改变。我在这里错过了什么?
试着把这个放在你的 onchange 属性上:
document.filter.submit();
如果失败,请为您的表单提供 ID 属性并执行以下操作:
document.getElementById('youFormId').submit();
您也可以将其作为 GET 参数发送,例如:
onchange="window.locatio.href+='?v='+this.value;"
顺便说一句,这个问题与Django关系不大,下次再问这种问题时,请标记html/javascript。
我试过这个:
onChange="form.submit();"
它奏效了。似乎 name
没有必要。