我一直在尝试了解jQuery keypress,keydown,keyup和 input 事件。但我发现它们很混乱。有人可以指出确切的区别吗?此外,我想知道当用户粘贴一段文本时,所有这些都会被触发 感谢
答案 0 :(得分:33)
根据jQuery docs:
当浏览器注册键盘输入时, keypress 事件将发送到元素。这类似于 keydown 事件,除了修饰符和非打印键(如Shift,Esc和delete)触发keydown事件,但不触发keypress事件。根据平台和浏览器,可能会出现两个事件之间的其他差异。
当用户在键盘上释放键时, keyup 事件将发送到元素。
oninput 事件,只要输入发生变化,就会触发该事件。
然而,在9以下的IE版本中不支持输入事件。在这种情况下,您可以使用专有事件onpropertychange,它与oninput相同。
但在您的情况下,您可以同时使用粘贴和更改事件。您也应该使用更改,因为粘贴仅在支持明确粘贴的浏览器上发生。