【发布时间】:2016-11-24 22:44:24
【问题描述】:
我一直在尝试理解 jQuery keypress、keydown、keyup 和 input 事件。但我发现它们很混乱。有人可以指出确切的区别吗?另外我想知道当用户粘贴一段文字时,它们是否都会被触发。
【问题讨论】:
标签: jquery input jquery-events
我一直在尝试理解 jQuery keypress、keydown、keyup 和 input 事件。但我发现它们很混乱。有人可以指出确切的区别吗?另外我想知道当用户粘贴一段文字时,它们是否都会被触发。
【问题讨论】:
标签: jquery input jquery-events
根据jQuery docs:
keypress 事件在浏览器注册键盘输入时发送到元素。这类似于 keydown 事件,不同之处在于修饰键和非打印键(如 Shift、Esc 和删除)会触发 keydown 事件,但不会触发 keypress 事件。这两个事件之间的其他差异可能会因平台和浏览器而异。
keyup 事件在用户释放键盘上的键时发送到元素。
oninput 事件是在输入发生变化时触发的事件。
但是 IE 9 以下的版本不支持输入事件。在这种情况下,您可以使用专有事件 onpropertychange,它的作用与 oninput 相同。
但在您的情况下,您可以同时使用 paste 和 change 事件。您也应该使用 change,因为 paste 仅在支持显式粘贴的浏览器上发生。
【讨论】:
keyup 事件更新输入值