为什么keypress不处理删除键和退格键

时间:2010-10-12 03:58:46

标签: javascript javascript-events keypress onkeypress

我不是在问这个因为我需要一个工作场所。我有一个工作正常,但我想知道为什么它没有。这是javascript中的错误(或JQuery,因为我使用的是JQuery .keypress处理程序),还是有一个特定的原因,为什么会这样呢?

提前致谢。

2 个答案:

答案 0 :(得分:15)

keypress事件用于处理用户键入的字符,而不是检测键盘活动,而删除和退格键不会生成字符。有些浏览器在某种程度上模糊了这一行,但一般原则是keyupkeydown事件可以检测到被按下的任何键并告诉您keypress用于检测时它是哪个键输入的实际字符。

答案 1 :(得分:2)

简短的回答是,并未针对所有浏览器中的所有密钥类型触发onkeypress事件。查看浏览器的手册。

为什么呢?

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