问题描述
根据我的经验,input type="text"
onchange
事件通常仅在您离开 (blur
) 控件后才会发生.>
有没有办法强制浏览器在每次 textfield
内容更改时触发 onchange
?如果不是,那么手动"跟踪这个最优雅的方式是什么?
使用 onkey*
事件是不可靠的,因为您可以右键单击该字段并选择粘贴",这将在没有任何键盘输入的情况下更改该字段.
setTimeout
是唯一的方法吗?...丑:-)
更新:
参见 另一个答案(2015).
2009 年原始答案:
那么,您希望 onchange
事件在按键按下、模糊、和粘贴时触发?太神奇了.
如果您想在输入时跟踪更改,请使用 "onkeydown"
.如果您需要使用鼠标捕获粘贴操作,请使用 "onpaste"
(IE, FF3) 和 "oninput"
(FF、Opera、Chrome、Safari).
In my experience, input type="text"
onchange
event usually occurs only after you leave (blur
) the control.
Is there a way to force browser to trigger onchange
every time textfield
content changes? If not, what is the most elegant way to track this "manually"?
Using onkey*
events is not reliable, since you can right-click the field and choose Paste, and this will change the field without any keyboard input.
Is setTimeout
the only way?.. Ugly :-)
Update:
See Another answer (2015).
Original 2009 Answer:
So, you want the onchange
event to fire on keydown, blur, and paste? That's magic.
If you want to track changes as they type, use "onkeydown"
. If you need to trap paste operations with the mouse, use "onpaste"
(IE, FF3) and "oninput"
(FF, Opera, Chrome, Safari).
这篇关于在 input type="text" 中按您输入的方式跟踪 onchange 的最佳方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!