监听input变化的事件
可以监听input变化的事件
在需要监听input输入值改变的时候,可以通过原声DOM对象的事件oninput/onchange/onkeyup/onkeypress/onkeydown 事件来监听。
这几种事件的触发条件
事件名称 | 触发条件 |
---|---|
onchange | 事件会在域的内容改变时发生 |
oninput | 事件在用户输入时触发 |
onkeyup | 事件会在键盘按键被松开时发生 |
onkeypress | 在按下按键时触发, 不能触发所有按键(例如:ALT, CTRL, SHIFT, ESC) |
onkeydown | 会在用户按下一个键盘按键时发生 |
这几种事件的区别
onchange事件只在键盘或者鼠标操作改变对象属性,且失去焦点时触发,脚本触发无效,而onkeydown/onkeypress/onkeyup在处理复制、粘贴、长按键 处理上会有问题。
onkeydown、onkeypress、onkeyup在复制文本的时候均无法感知。
oninput不用考虑是否失去焦点,不管js操作还是键盘鼠标手动操作,只要HTML元素属性发生改变即可立即捕获到。
结论
如果要时时的监听input中值的变化,用oninput最合适
在react中,对input onChange跟原生DOM的oninput机制基本一样,只要HTML元素属性发生改变即可立即捕获到.可以参考这篇文档点击进入。