本文介绍了在 input type="text" 中按您输入的方式跟踪 onchange 的最佳方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

根据我的经验,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 的最佳方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-24 17:29