keydown
、keyup
属于键盘事件,input
属于文本事件。
keydown
:当用户按下键盘上的任意按键时触发,如果按住不放,会重复触发此事件。keyup
:当用户释放键盘上的按键时触发。input
:当元素内容发生改变时触发,这些元素指<input>
、<select>
、<textarea>
和指定了contenteditable
属性的元素。
举个例子:当我们在一个输入框中输入文本时,会依次触发下列事件:
keydown
事件 ——> input
事件 ——> keyup
事件。
每个事件传递给事件处理函数的事件对象的目标元素值(event.target.value
)是这样的(假设开始时输入框中有一个文本 你
,我们又输入了 好
):
keydown
事件的目标元素值:你
。input
事件的目标元素值:你好
。keyup
事件的目标元素值:你好
。
可以观察到,keydown
事件返回的值是输入框之前那个状态时包含的值,这一点要注意。
(完)