2

可能重复:
如何从 javascript 检测文本框更改事件

如何在插入后立即检测到文本字段的插入值?change事件仅在失去焦点后才会上升keyPress, keyUp, keyDown,等无法帮助我,因为新值是从条形码扫描仪插入的(它不会上升这个键盘事件)。仅使用 Timer 并定期检查文本字段中的值?

4

2 回答 2

1

您可以使用该oninput事件。每当在该字段中进行输入时,它将触发。

有关更多信息,我将从以下博客中获得报价:http ://whattheheadsaid.com/2010/09/effectively-detecting-user-input-in-javascript (由@AndyE编写)

谈论onkeydown和计时器......

但是,这仍然不能处理不涉及键盘的输入。还有哪些其他类型的输入?上下文菜单操作怎么样?剪切、粘贴、撤消和重做?拖放?一段时间以来,已经有一些事件可以处理一些其他类型的输入更改——一些浏览器支持 onpaste、oncut 和 oncopy 事件——但它们是非标准的,一些供应商太固执而无法实现它们。

输入 HTML 5 事件 oninput。

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

于 2012-07-03T06:44:09.097 回答
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">​
于 2012-07-03T05:16:52.713 回答