在傳統HTML表單上使用JQuery Autocomplete。JQuery自動完成:在選擇時提交表單?
嘗試提交表單(老式的方式)時,進行選擇。
但輸入框被填寫,然後我必須使第二次按「返回」,或單擊提交按鈕。
我已經嘗試了幾個例子,但我無法讓他們工作。
如何在選擇時自動提交表格?
在傳統HTML表單上使用JQuery Autocomplete。JQuery自動完成:在選擇時提交表單?
嘗試提交表單(老式的方式)時,進行選擇。
但輸入框被填寫,然後我必須使第二次按「返回」,或單擊提交按鈕。
我已經嘗試了幾個例子,但我無法讓他們工作。
如何在選擇時自動提交表格?
更新:我終於想出了這一個,下面的代碼應該做的伎倆。由於某種原因,change
回調無法正常工作,但回調函數可以執行close
& select
回調。使用select
更好,因爲如果該領域失去焦點,close
也將被調用。
$(function() {
$("#searchField").autocomplete({
source: "values.json",
select: function(event, ui) {
$("#searchForm").submit(); }
});
});
另一個更新:好吧,這裏還有與select
回調,這是在默認情況下(在上面的代碼中),如果您遍歷自動完成下拉鍵盤出現問題,並與輸入選擇鍵,輸入在表單提交之前被改變。但是,如果您使用鼠標選擇它,表單會在輸入更改前提交,因此提交的值就是用戶輸入的內容(而不是從自動完成下拉列表中選擇的內容)。這似乎工作的woraround是:
$("#searchField").autocomplete({
source: "values.json",
minLength: 2,
select: function(event, ui) {
$("#searchField").val(ui.item.label);
$("#searchForm").submit(); }
});
當自動完成提交我的表單時,我會產生相反的影響,但我不希望它有任何建議? – Robert 2016-08-20 17:12:55
$("#searchField").result(function(event, data, formatted) {
$(this).closest("form").submit();
});
的searchField已經填充了選定的領域,所以沒有必要再做一次在此功能。
正式文件:http://docs.jquery.com/Plugins/Autocomplete/result#handler
我不能對@handsofaten回答評論,所以我會加重他的答案在這裏。使用值而不是標籤可能更有意義,因爲在某些情況下,我的情況是,標籤不是用戶想要搜索數據庫的用途。
$("#searchField").autocomplete({
source: "values.json",
minLength: 2,
select: function(event, ui) {
$("#searchField").val(ui.item.value);
$("#searchForm").submit(); }
});
select: function(event, ui) {
if(ui.item){
$(event.target).val(ui.item.value);
}
$(event.target.form).submit();
});
考慮提供解釋給你的答案 – arghtype 2014-12-16 11:38:56
您提交通過調用Submit按鈕ID在這個領域,即使代碼在其他頁面也選擇存檔。
document.getElementById('submit').click();
簡而言之:定義一個回調函數並使用javascript在回調函數中提交表單。不知道如何在代碼中做到這一點。 – Natrium 2010-02-04 09:43:10