博 之 文

以 拼 搏 设 计 梦 想 , 以 恒 心 编 程 明 天
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

js 小技巧之监听TextBox文本框内容变化

Posted on 2012-03-21 22:01  IsNull_Soft  阅读(2081)  评论(0)    收藏  举报

在实际工作中遇见一个问题,需要监听input中的值变化,开始使用的是监听keyup事件,但这样做有弊端,就是在用右键剪切调里面的内容时,因为没有键盘操作,所以无法触发keyup,同理在粘贴时也存在该现象,于是在查找相关知识后,发现有一个oncut和onparste事件,这两个的确可以监听到鼠标的剪切,粘贴动作,可是无法得到剪切后的值,也就是说他是在改变input内容之前触发的,得到的是未操作前的值,因此也不适用。最后通过一个定时器实现了该效果,如下:

var tValue;

 setInterval(function(event){
       if(tValue !=document.getElementById("txt").value){

         //这里写自己的业务逻辑代码
         tValue =document.getElementById("txt").value;
       }
  },100);

原理很简单,就是在外部先声明一个用来记录input值的变量,然后每0.1秒比较这个值与input的值,如果发生改变,则运行自己的代码,同事改变变量。从而实现对input值改变的监听。

 

本人测试实例:

 <script type="text/javascript">
        var tValue="";
        setInterval(function (event) {
            var value = document.getElementById("TextBoxName").value;
            if (tValue != value) {
                alert(value);
                tValue = document.getElementById("TextBoxName").value;
            }
        }, 100);
    </script>

学生姓名:<asp:TextBox ID="TextBoxName" runat="server"></asp:TextBox>