2011-03-01 146 views
5

我試圖在有人在JQuery自動完成搜索字段中輸入值時有條件地更改鏈接URL,但是,使用以下代碼我無法由於某種原因註冊更改事件或甚至綁定處理程序:JQuery自動完成更改事件沒有被觸發

$("#protocol-name").autocomplete({ 
    source: protocol_names, 
}).bind("autocompletechange", function(){ 
    alterURL(); 
}).focus(function() { 
    $(this).select(); 
    $(this).autocomplete('search'); 
}); 

此外,$(「#網絡協議名稱」)變更()沒什麼任寄存器中,其中協議的名稱表示的輸入欄。

+0

請問,當你提供其作爲一個init選項工作? '改變:功能(事件,用戶界面){...} – JohnP 2011-03-01 04:41:57

回答

4

試着這樣做:

$(".selector").autocomplete({ 
    change: function(event, ui) { ... } 
}); 
+0

優秀,工作。奇怪的是,其他方法做到這一點雖然沒有... – user638756 2011-03-10 07:11:52

2

事實上change事件被觸發,但只有在輸入元素已經失去了焦點。你自己可以check it

UPD:這種行爲是跨瀏覽器不一致,請參閱http://bugs.jqueryui.com/ticket/8878

+0

並沒有在Chrome版本23,24中被解僱。 – nigi 2012-12-26 09:56:15

+0

@nigi至少在Ubuntu Chrome 23.0.1271.97它的工作原理 – 2012-12-27 10:24:11

+0

看到它沒有被觸發的步驟:1 )填寫「ap」。 2)按「向下箭頭」鍵。 3)現在在輸入欄中你看到「蘋果」,按「標籤」,沒有開火... – nigi 2012-12-27 12:34:44