keyup,keydown,keypress和input事件之间有什么区别?

时间:2016-07-21 11:05:05

标签: jquery input javascript-events

我一直在尝试了解jQuery keypress,keydown,keyup和 input 事件。但我发现它们很混乱。有人可以指出确切的区别吗?此外,我想知道当用户粘贴一段文本时,所有这些都会被触发 感谢

1 个答案:

答案 0 :(得分:33)

根据jQuery docs

  

当浏览器注册键盘输入时, keypress 事件将发送到元素。这类似于 keydown 事件,除了修饰符和非打印键(如Shift,Esc和delete)触发keydown事件,但不触发keypress事件。根据平台和浏览器,可能会出现两个事件之间的其他差异。

     

当用户在键盘上释放键时, keyup 事件将发送到元素。

     

oninput 事件,只要输入发生变化,就会触发该事件。

然而,在9以下的IE版本中不支持输入事件。在这种情况下,您可以使用专有事件onpropertychange,它与oninput相同。

但在您的情况下,您可以同时使用粘贴更改事件。您也应该使用更改,因为粘贴仅在支持明确粘贴的浏览器上发生。