1、该三个事件的执行顺序如下:onkeydown -> onkeypress ->onkeyup
onkeydown:某个键盘的键被按下;
onkeypress:某个键盘的键被按下或按住;
onkeyup:某个键盘的键被松开
键盘事件的event对象中包含一个keyCode属性,IE中只有这一个属性,当为keydown和keyup 事件是,keycode属性表示你具体按下的键(也称为virtual keycode),当捕捉的是keypress事件时keyCode属性指的是你键入的字符(character code)
2、onKeyDown与onKeyPress不同点
onKeyDown事件,是在按下某个键时就会触发,如果按着不放,则会一直触发;
onKeyPress事件,也是在按下键时触发,但不同的是,这个键必须是字符键,比如说1,2,3,a,b,c,`,在有字符输入的情况下它才会触发,当你按下非字符键如Shift,F4之类的,它是不会触发的。
当你按下字符键时,你会发现两个事件都触发了,但有先后顺序,先触发KeyDown,再触发KeyPress。但当你按下非字符键时,就只会触发KeyDown事件,KeyPress则不知所踪。当焦点在文本框时,哪怕你按下的是F5键刷新,onKeyDown也都会触发。
onkeydown不区分大小写,永远返回大写的对应的ascii码;onkeypress区分大小写。
<input type="text" id="text1"/><br/>
<script>
var text1 = document.getElementById("text1");
text1.onkeypress=function(){
alert('keypress');
}
text1.onkeydown=function(){
alert('keydown');
}
</script>