2013-02-08 87 views
0
$(document).delegate("input#search-champions", "change", function(e) 

每當我更改search-champions中的值時,我必須單擊文本框以外的值才能使其正常工作。我希望函數在文本框內的值發生變化時運行。當文本框內的文本發生變化時,會調用什麼事件?

我忘記了它的名稱,但它是Google用於搜索的系統。你寫了,它會告訴你有A.結果

+1

'keyup' ||'keypress'。 – BenM 2013-02-08 16:47:21

+0

是'$(」 #search-champions「)。change(function(){...});'not working? – 2013-02-08 16:52:59

+0

'change'只在該領域失去焦點時纔會被觸發 – BenM 2013-02-08 16:59:48

回答

2

儘量結合keyup事件,而不是:

$(document).delegate("#search-champions", 'keyup', function(e) 

順便問一下,應該沒有必要與input預先考慮您的選擇 - 標識無論如何都應該是唯一的!

+0

非常感謝,這解決了我的問題 – 2013-02-08 17:00:18

+0

沒問題。可能想接受答案:) – BenM 2013-02-08 17:02:14

1

更改事件不適用於文本框。相反,改變你可以使用鍵或按鍵事件。 你想要什麼,我們稱之爲自動完成。要做到這一點 所以最好的辦法是在keyup事件

$(document).delegate("input#search-champions", "keyup", function(e){ 
var elm=$(this); 
var str=elm.val(); 
//now you can get word starting from a either from some array or server call or ajax. 

}); 

如果您正在使用jQuery UI的。它具有自動完成功能。

http://jqueryui.com/autocomplete/

的$(document).delegate( 「輸入#搜索冠軍」, 「改變」,功能(E)

+0

'change'對'input'元素有效,但只有當它們模糊時。 – BenM 2013-02-08 17:02:33

相關問題