2012-07-03 64 views
2

可能重复:
How to detect textbox change event from javascript检测更改事件立即

我怎么能检测插入值,插入后的文本字段? change只有焦点丢失后,事件才会上升,keyPress, keyUp, keyDown等不能帮助我,因为从条形码扫描仪插入新值(它不会增加此键盘事件)。只使用定时器并定期检查文本字段中的值?

+0

你尝试'onchange'事件? –

+0

这并不简单,尝试使用一些预制脚本,如http://whattheheadsaid.com/projects/input-special-event – biziclop

+0

这真的不行!我无法相信......知道这很有趣。谢谢! –

回答

0

你的意思是这个http://jsfiddle.net/SP69J/10/

功能

$(document).ready(check); 
    var previousvalue=""; 
function check(){ 
var val=$("#inputcontrol").val(); 
var interval; 

interval = window.clearInterval(interval); 
    if(val!=previousvalue){ 
    alert("value changed"); 
     previousvalue=$("#inputcontrol").val(); 
    }   
interval = window.setInterval(check, 500);  
}​ 

设置的时间间隔根据自己的需要。

HTML:

<input type="text" id="inputcontrol">​ 
1

可以使用oninput事件。只要在现场进行输入,它就会触发。

欲了解更多信息,我会从这个博客获得报价:http://whattheheadsaid.com/2010/09/effectively-detecting-user-input-in-javascript(由@AndyE书面)

谈到的onkeydown和定时器...

然而,这仍然没有按”处理不涉及键盘的输入。还有什么其他类型的输入?上下文菜单操作如何?剪切,粘贴,撤消和重做?拖放?一段时间以来,一些事件可以处理一些其他类型的输入变化 - 一些浏览器支持onpaste,oncut和oncopy事件 - 但它们不是标准的,有些供应商太过顽固,无法实现它们。

输入HTML 5事件。

对于一个跨浏览器的jQuery插件,你可以看看这一个(同一作者):http://whattheheadsaid.com/projects/input-special-event