我不是问这个问题,因为我需要解决方法。我有一个运行良好的设备,但我想知道为什么不行。这是Javascript中的错误(还是JQuery,因为我使用的是JQuery .keypress
处理程序),还是有特定原因导致这种错误?
keypress
事件旨在处理用户键入的字符,而不是检测键盘活动,并且Delete和Backspace键不会生成字符。一些浏览器对此行有些模糊,但是一般的原理是keyup
和keydown
事件在那里可以检测到是否按下了任何键,并告诉您它是哪个键,而keypress
用于检测正在键入的实际字符。
简短的答案是不会在所有浏览器中为所有键类型触发onkeypress事件。查看您的浏览器手册。
为什么?
可能不是一个全面的答案,但考虑Shift,当它下降时以及相对于其他琴键上升时,意义重大。另外,您可能需要详细了解不同的键盘硬件具有不同的键翻转特性。