一、含义
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 /news/692.html
如果觉得《onkeyup onkeydown和onkeypress区别》对你有帮助,请点赞、收藏,并留下你的观点哦!