onkeyup,onkeydown和onkeypress
| 名稱 | 說(shuō)明 |
| onkeypress | 這個(gè)事件在用戶按下并放開(kāi)任何字母數(shù)字鍵時(shí)發(fā)生。系統(tǒng)按鈕(例如,箭頭鍵和功能鍵)無(wú)法得到識(shí)別。 |
| onkeyup | 這個(gè)事件在用戶放開(kāi)任何先前按下的鍵盤鍵時(shí)發(fā)生。 |
| onkeydown | 這個(gè)事件在用戶按下任何鍵盤鍵(包括系統(tǒng)按鈕,如箭頭鍵和功能鍵)時(shí)發(fā)生。 |
======================
<html>
<script>
?? function checkForm(){
??? if(event.keyCode ==13){
???? event.keyCode =9;
??? }
?? }
</script>
<body>
?? <form name ="form1">
??? <input type="text" name = "text1"?onkeydown?= "checkForm()">
??? <input type="button" name = "button1" value="按鈕">
?? </form>
</body>
</html>
當(dāng)按下回車時(shí),焦點(diǎn)從文本框移到按鈕上。如果把它換成“onkeypress”,焦點(diǎn)不會(huì)轉(zhuǎn)移,也不會(huì)失去。但是如果換成“onkeyup”,則失去焦點(diǎn),頁(yè)面重新載入。
測(cè)試發(fā)現(xiàn)onkeydown?事件最先執(zhí)行,其次是onkeypress,最后是onkeyup;onkeydown?和onkeypress會(huì)影響onkeyup的執(zhí)行。三個(gè)事件同事在的話,都是alert的話,只會(huì)彈出2個(gè)alert,up事件的alert不會(huì)彈出。
三者在事件的響應(yīng)上還有一點(diǎn)不同,就是onkeydown?、onkeypress事件響應(yīng)的時(shí)候輸入的字符并沒(méi)有被系統(tǒng)接受,而響應(yīng)onkeyup的時(shí)候,輸入流已經(jīng)被系統(tǒng)接受。由于onkeydown?比onkeypress先執(zhí)行,再根據(jù)上面的例子可以知道,onkeydown?觸發(fā)的時(shí)候輸入流正要進(jìn)入系統(tǒng),也就是說(shuō)onkeydown?事件一完,輸入流就進(jìn)入了系統(tǒng),無(wú)法改變。所以通過(guò)onkeydown?事件可以改變用戶是按了哪個(gè)鍵;而onkeypress事件則是在輸入流進(jìn)入系統(tǒng)后觸發(fā)的,但輸入流暫未被系統(tǒng)處理,此時(shí)已經(jīng)不能改變輸入流了;onkeyup則是輸入流被系統(tǒng)處理后發(fā)生的。
轉(zhuǎn)載于:https://www.cnblogs.com/Anzhongliu/p/6092038.html
總結(jié)
以上是生活随笔為你收集整理的onkeyup,onkeydown和onkeypress的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: rabiitmq
- 下一篇: HttpClient的释放问题