2015-04-23 162 views
1

我有一个表有大量的工作数据,我有一个下拉菜单和一个提交按钮,它充当过滤器,以便该表只显示基于过滤:Django表单提交下拉选择,而不是提交按钮

<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_id4创建的表。

事情是,现在我只想删除提交按钮,并提交下拉选择表单。

我试着给表单的名称,当有选择上的改变提交:

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

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

回答

2

我尝试这样做:

onChange="form.submit();" 

和它的工作。似乎name是没有必要的。

+0

完美!正是我在找什么。 – Andrew

0

尝试把这个在你的onchange ATTR:

document.filter.submit(); 

如果失败,给您形式的ID属性,并做到:

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

你也可以把它作为一个GET paramenter,如:

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

顺便说一下,这个问题与Django关系不大,你应该标记它的HTML/JavaScript下一次你问这种东西。