键盘事件keydown,keypress,keyup

1、如果用户按下键盘上的字符键时顺序为keydown -> keypress ->keyup。keydown、keypress事件在文本框发生变化之前被触发的,而keypress事件是在文本框已经发生变化之后触发的。如果用户按下了一个字符键不放,就会重复触发keydown和keypress事件,直到用户松开该键为止。

2、如果用户按下非字符键时首先触发keydown,然后触发keyup事件。如果用户按下了一个非字符键不放,就会重复触发keydown事件,直到用户松开该键为止。

3、在keyup事件中无法阻止浏览器默认事件,因为在keypress时,浏览器默认行为已经完成,即将文字输入文本框(尽管这时还没显示),这个时候不管是preventDefault还是returnValue = false,都不能阻止在文本框中输入文字的行为,如要阻止默认行为,必须在keydown或keypress时阻止。

4、发生keypress事件意味着按下的键会影响到屏幕中文本的显示。在所有浏览器中,按下能够插入或删除字符的键都会触发keypress事件;(JS高级教程是这样写的,与下方链接博客略有冲突。)按下其他键能否触发此事件因浏览器而言。

     event对象的charCode属性,只有在keypress触发时才包含值,且这个值是按下那个键所代表字符的ASCII编码。所以要想以跨浏览器的方式取得编码,必须首先检测charCode属性是否可用,如果不可用则使用keyCode。

关于其他keydown,keypress,keyup更细更深入得研究可以参考键盘事件keydown、keypress、keyup随笔整理总结

转载于:https://www.cnblogs.com/wymninja/articles/5711327.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值