msdn上有三者的區別: 名稱 說明
onkeypress
這個事件在使用者按下並放開任何字母數字鍵時發生。系統按鈕(例如,箭頭鍵和功能鍵)無法被辨識。
onkeyup
這個事件在使用者放開任何先前按下的鍵盤鍵時發生。
onkeydown
這個事件在使用者按下任何鍵盤鍵(包括系統按鈕,如箭頭鍵和功能鍵)時發生。
======================
<script> <BR>function checkForm(){ <BR>if(event.keyCode ==13){ <BR>event .keyCode =9; <BR>} <BR>} <BR></script>
html>
按下回車時,焦點從文字方塊移到按鈕上。如果把它換成“onkeypress”,焦點不會轉移,也不會失去。但是如果換成“onkeyup”,則失去焦點,頁面重新載入。
測試發現onkeydown 事件最先執行,其次是onkeypress,最後是onkeyup;onkeydown 和onkeypress會影響onkeyup的執行。三個事件同事在的話,都是alert的話,只會彈出2個alert,up事件的alert不會彈出。
三者在事件的回應上還有一點不同,就是onkeydown 、onkeypress事件回應的時候輸入的字元並沒有被系統接受,而回應onkeyup的時候,輸入流已經被系統接受。由於onkeydown 比onkeypress先執行,再根據上面的例子可以知道,onkeydown 觸發的時候輸入流正要進入系統,也就是說onkeydown 事件一完,輸入流就進入了系統,無法改變。所以透過onkeydown 事件可以改變使用者是按了哪個鍵;而onkeypress事件則是在輸入流進入系統後觸發的,但輸入流暫未被系統處理,此時已經不能改變輸入流了;onkeyup則是輸入流被系統處理後發生的。