我一直在尝试理解 JavaScript keypress
、keydown
、keyup
和 input 事件。但我发现它们很困惑。有人可以指出确切的差异吗?我还想知道当用户粘贴一段文本时是否会触发所有这些操作。
最佳答案
根据jQuery docs :
The keypress event is sent to an element when the browser registers keyboard input. This is similar to the keydown event, except that modifier and non-printing keys such as Shift, Esc, and delete trigger keydown events but not keypress events. Other differences between the two events may arise depending on platform and browser.
The keyup event is sent to an element when the user releases a key on the keyboard.
The oninput event it's an event that triggers whenever the input changes.
但是 IE 9 以下版本不支持 input 事件。在这种情况下,您可以使用专有事件 onpropertychange,它的作用与 oninput 相同。
但就您而言,您可以同时使用粘贴和更改事件。您也应该使用更改,因为粘贴仅发生在支持显式粘贴的浏览器上。
关于javascript - keyup、keydown、keypress 和 input 事件之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38502560/