2014-09-19 51 views
-2

我想將單詞的第一個字母改爲大寫。所以,我在keyup()函數上寫了一些代碼。如何在使用自動完成功能時觸發按鍵()

每當我在文本字段中鍵入內容時,Word的第一個字母將變爲大寫。

我也用autocomplete()函數。問題是,每當我從自動完成下拉菜單中選擇一個單詞時,它的第一個字母不會變爲大寫,最後一個文本框也會自動聚焦。

僅供參考:在自動完成選擇後,我觸發了keyup()函數。

的jsfiddle:http://jsfiddle.net/8ke04mgs/5/

+0

爲什麼你需要'keyup()'事件? ''autocomplete()''已經使用'keypress()',它工作正常嗎? – 2014-09-19 09:08:41

+0

你說過:「每當我從自動完成下拉菜單中選擇一個單詞時,它的第一個字母不會變爲大寫,最後一個文本框也會自動聚焦。」但是我可以在你的小提琴中看到當你輸入自動完成文本框時你的第一個字母變成了大寫字母......並且最後一個文本是從第二個字符開始顯示的。那麼你的問題實際上是什麼。這篇文章和你的小提琴是不同的。 – 2014-09-19 09:10:51

+0

不,只有相同。每當我在文本框中鍵入時,它工作正常。但在打字時,一些建議將在下拉菜單中顯示。從下拉列表中選擇任何一個建議後,都不會更改爲大寫。我解釋清楚了嗎? – Balaji 2014-09-19 09:18:19

回答

0

您可以在文本框使用更改事件

$(document).on('change', 'inputBox', function() { 
    // Does some stuff and logs the event to the console 
}); 

這將解決自動完成問題

0

您當前的做事方式會如果工作完美的選擇方法,你提供給自動完成庫在被更新後被調用。 但事實並非如此,它之前被調用,所以它利用的值是舊值,並立即由自動完成代替。

正如@Alok指出的那樣,您可以使用「更改」事件等待一段時間。

爲了避免寫出你的事件處理了兩次,記得.on()可以採取多個事件,所以我只是把它在KEYUP和改變,像這樣

$('#element').on('keyup change', function() { 
    ... 
}); 

但我認爲在現代瀏覽器「變」應該夠了。

相關問題