2010-10-12 136 views
7

我不是问这个,因为我需要一个工作环境。我有一个工作正常,但我想知道为什么它没有。在JavaScript(或JQuery,因为我正在使用JQuery .keypress处理程序)这个错误还是有一个特定的原因,为什么这是这样的?为什么没有按键处理删除键和退格键

在此先感谢。

回答

15

keypress事件设计用于处理用户输入的字符,而不是检测键盘活动,并且删除和退格键不会生成字符。有些浏览器模糊了这一行,但总体原则是,keyup和​​事件可以检测到任何按键被按下,并告诉你它是哪个键,而keypress用于检测键入的实际字符。

2

简短的回答是onkeypress事件并非针对所有浏览器中的所有键类型触发的。查看您的浏览器手册。

为什么?

可能不是一个全面的答案,但考虑Shift,当它下降,并且它出现时相对于其他键是显着的。不同的键盘硬件具有不同的键盘翻转特性,您可能需要详细了解这些特性。