2015-04-23 160 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下一次你問這種東西。