2012-03-18 141 views
-1

我在我的php頁面中有一個列表菜單。在這個列表菜單中,我有一個onChange事件,你可以在下面看到。jquery自動完成onChange事件

<select name="company" onChange="getproduct(this)"> 

上述事件獲取所選公司的產品名稱。但現在我想將此列表菜單更改爲自動完成。我嘗試下面的代碼,但它不是任何獲取,任何人都可以幫我PLZ

<input type="text" name="company" id="company" onkeyup="getproduct(this)"/> 
+0

看到http://stackoverflow.com/questions/13601483/fire-onchange-event-after-autocomplete/正確答案20107284#20107284 – maxweber 2013-11-20 21:21:44

回答

4

一般來說,使用HTML屬性JavaScript事件是不好的做法。由於您無論如何都使用jQuery,因此您應該在外部腳本中執行類似操作:

$('#company').on('change keyup input', function() { getproduct(this); }); 

我現在將其分解。

$('#company')選擇ID爲「company」的元素。這可以讓你通過改變它或附加事件監聽器來處理那個帶有javascript的對象。

.on(...)將事件偵聽器附加到所選對象。它可以以幾種不同的方式使用,但是最基本的方式(這是我們在這裏使用它的方式),它有兩個參數,第一個是空格分隔的事件列表,用於監聽,第二個是回調函數當這些事件發生在所選元素上時執行。

change是一個事件,當輸入元素改變了它的值然後失去焦點時被觸發。如果用戶沒有通過鍵入來更改輸入(可能通過上下文菜單進行粘貼),這可能是一個有用的事件。

keyup是當按鍵然後釋放時觸發的事件。另請參閱​​和keypress

input是一個很酷的新的HTML5事件,用於監聽用戶在元素上的輸入。這是非常重要的,因爲它是專門爲您正在嘗試完成的。 (值得注意的是,當在數字輸入類型上單擊微調箭頭按鈕時,觸發輸入事件。)如果用戶瀏覽器不支持輸入事件,您仍然希望將其他事件用作後備事件。

+0

非常感謝你的詳細解答,我試了一下,但它不適用於KeyUp,KeyDown和KeyPress – Arif 2012-03-19 04:38:23

+0

請確保你使用'keyup','keydown'和'keypress'的全部小寫字母。 – 2012-03-19 13:25:51