2015-04-23 2 views
1

У меня есть таблица с большим количеством данных о работе, и у меня есть раскрывающееся меню и кнопка отправки, которая действует как фильтр, так что в таблице отображаются только задания, основанные на фильтр:Django form submit on dropdown selection, а не кнопка отправки

<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 

Тогда у меня есть таблица ниже, где все Показанные задания теперь только те, которые создаются 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 в следующий раз, когда вы спросите об этом.

Смежные вопросы