www.hg7410.com

2019-11-02JavaScript5200
  • 詳情內容
  • 留言點評

js按鍵事件onkeyup,onkeydown和onkeypress的區別簡單來說,onkeydown 、onkeypress事件響應的時候輸入的字符並沒有被系統接受,而響應onkeyup的時候,輸入流已經被系統接受。

onkeydown和onkeypress具體區別︰ 

 一個放開一個沒有放開,onkeydown 先于 onkeypress 發生; 
onkeydown 捕獲的 keyCode 不區分字母大小,而 onkeypress 區分;
onkeypress是在用戶按下並放開任何字母數字鍵時發生,系統按鈕(例如,箭頭鍵和功能鍵)無法得到識別;

onkeyup和onkeydown具體區別

onkeyup 是在用戶放開任何先前按下的鍵盤鍵時發生;
onkeydown 是在用戶按下任何鍵盤鍵(包括系統按鈕,如箭頭鍵和功能鍵)時發生;

從名字上也能看出一些區別︰keydown意指鍵盤被按下觸發,keyup意指鍵盤松開被觸發,keypress則是按鍵被按壓。

三者執行順序︰keydown < keypress < keyup ;

keypress只能監听字母和數字,不能監听一些特殊按鍵(如Ctrl、Shift、箭頭等);

keydown捕獲的鍵值不區分字母大小寫,而keypress區分,例如,直接按下A鍵,keydown打印65,keypress打印97,當Caps打開時,keydown和keypress都是打印65;

keydown和keypress如果不松開會一直觸發,keyup會直到松開才會觸發;

另外需要說明一點,keypress在谷歌和IE無法監听上下左右箭頭,但是火狐不按常規出牌,可以監听。不過這是早期版本的問題,新版可能已不存在區別。

測試代碼

<html> <body><p>請按任意鍵開始測試</p><p>onkeydown︰<input type="text" id="onkeydown"></p><p>onkeyup︰<input type="text" id="onkeyup"></p><p>onkeypress︰<input type="text" id="onkeypress"></p><script> document.onkeydown = function(e){document.getElementById("onkeydown").value=e.keyCode;};document.onkeyup = function(e){document.getElementById("onkeyup").value=e.keyCode;};document.onkeypress = function(e){document.getElementById("onkeypress").value=e.keyCode;};</script></body> </html>


歡迎點評!也可以是問題反饋和建議

支持Ctrl+Enter提交
暫無留言,快搶沙發!
0

真心很贊,必須打賞!嗯,以資鼓勵~

點此打賞

99%看過的人還會看

www.hg7410.com | 下一页