0

這可能是一個簡單的問題,但我還沒有如此堅定的JavaScript。select2 - 提交表格

我想使用select2自動完成搜索表單。

當用戶在select2下拉框中選擇一個結果時,我想立即提交搜索表單,這樣我就不需要表單按鈕了。

我找到了select2:select事件處理程序 - 但我沒有得到它的工作。任何幫助?

我選擇2工作正常,如果我有一個按鈕,我可以提交表單並接收所選擇的對象ID:

<form action="" method="get" id="project-search"> 
     <select class="form-control" 
       data-autocomplete-light-function="select2" 
       data-autocomplete-light-url="/output/project-autocomplete/" 
       data-placeholder="Suche nach Projektnr. oder Projektleiter" 
       id="id_projekt" name="projekt"> 
      <option value="" selected="selected">----------</option> 
     </select> 
</form> 

的JavaScript代碼片段似乎不工作:

<script type="text/javascript"> 
    $(document).ready(function() { 
    $eventSelect.on("select2:select", function() { 
     console.log("select2:select"); 
     $(this).parents('form').submit(); 
    }); 
}); 
</script> 

編輯:我在我的鉻控制檯中收到此錯誤消息:

Uncaught ReferenceError: $eventSelect is not defined 

謝謝!

我使用django與django自動完成燈爲後端btw。

回答

0

https://api.jquery.com/change/

jQuery有能夠檢測上選擇/複選框變化的函數。嘗試:

$('#id_projekt').change(function(){ $('#project-search').submit(); });

+0

太棒了!這似乎工作,謝謝你! 我只是currious,並希望更好地理解它 - 爲什麼不使用「select2:select」事件?或者爲什麼甚至沒有必要? – teconomix

+0

select事件完全不同。這裏有一個很好的例子:http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_onselect_html另外,如果你還沒有弄明白,'$()。change()'和' $()。在( '變')'。 –

+0

謝謝貝瑞! :) – teconomix