鍵盤事件keydown,keypress,keyup

1、如果用戶按下鍵盤上的字符鍵時,順序為keydown -> keypress ->keyup。keydown、keypress事件在文本框發(fā)生變化之前被觸發(fā)的,而keypress事件是在文本框已經發(fā)生變化之后觸發(fā)的。如果用戶按下了一個字符鍵不放,就會重復觸發(fā)keydown和keypress事件,直到用戶松開該鍵為止。

2、如果用戶按下非字符鍵時,首先觸發(fā)keydown,然后觸發(fā)keyup事件。如果用戶按下了一個非字符鍵不放,就會重復觸發(fā)keydown事件,直到用戶松開該鍵為止。

3、在keyup事件中無法阻止瀏覽器默認事件,因為在keypress時,瀏覽器默認行為已經完成,即將文字輸入文本框(盡管這時還沒顯示),這個時候不管是preventDefault還是returnValue = false,都不能阻止在文本框中輸入文字的行為,如要阻止默認行為,必須在keydown或keypress時阻止。

4、發(fā)生keypress事件意味著按下的鍵會影響到屏幕中文本的顯示。在所有瀏覽器中,按下能夠插入或刪除字符的鍵都會觸發(fā)keypress事件;(JS高級教程是這樣寫的,與下方鏈接博客略有沖突。)按下其他鍵能否觸發(fā)此事件因瀏覽器而言。

???? event對象的charCode屬性,只有在keypress觸發(fā)時才包含值,且這個值是按下那個鍵所代表字符的ASCII編碼。所以要想以跨瀏覽器的方式取得編碼,必須首先檢測charCode屬性是否可用,如果不可用則使用keyCode。

關于其他keydown,keypress,keyup更細更深入得研究可以參考鍵盤事件keydown、keypress、keyup隨筆整理總結?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容