onkeyup,onkeydown和onkeypress區別



一、含義


onkeypress
這個事件在用戶按下並放開任何字母數字鍵時發生。系統按鈕(例如,箭頭鍵和功能鍵)無法得到識別。
 
onkeyup
這個事件在用戶放開任何先前按下的鍵盤鍵時發生。
 
onkeydown
這個事件在用戶按下任何鍵盤鍵(包括系統按鈕,如箭頭鍵和功能鍵)時發生。 

 


二、onkeyup,onkeydown和onkeypress區別

 

1、三個事件執行順序onkeydown -> onkeypress -> onkeyup


2、onkeypress僅能響應數字和字母鍵,不能對系統功能鍵進行捕獲,而onkeydown和onkeyup事件均可對系統功能鍵進行響應。


3、onkeypress與另外onkeydown和onkeyup事件所使用的keycode不相同,而且onkeypress事件區分字母大小寫但不區分主鍵盤數字鍵和小鍵盤數字鍵。


4、IE和火狐對這三個事件的處理不同

在IE中,鍵盤事件的event對象中包含一個keyCode屬性,當爲keydown和keyup 事件是,keycode屬性表示你具體按下的鍵(也稱爲virtual keycode),當捕捉的是keypress事件時keyCode屬性指的是你鍵入的字符(character code)  。

在firefox中情況有些不同,event對象包含一個keyCode屬性和一個charCode屬性,keydown和keyup事件的時候,keyCode表示的就是你具體按的鍵,charCode爲0;當捕捉的是keypress事件時,keyCode爲0,charCode指的是你按下的字符。


5、onkeypress 可被理解是被按着的那種狀態是keydown 觸發造成,keyup 就是彈起來了,釋放了。點 onkeypress 時,其實輸入的任務還沒有完成,所以在此刻打印出來的輸入數據時不包含你手上按下的這個鍵的,所以在這個過程裏偵聽輸入框裏的字符數是不可取的。因此做搜索建議suggest時應該選用onkeyup。



文章轉載自: onkeyup,onkeydown和onkeypress    http://www.studyofnet.com/news/692.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章