参考着做个方法,处理js不能触发value改变事件,---只是定时器用时间间隔检查和处理,如果要求严格的,可能并不适用

 

参考:http://blog.csdn.net/zhbitxhd/article/details/12943091

 

 

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
	<meta charset="utf-8" />
    <script src="source/jquery.min.js" type="text/javascript"></script>
</head>
<body>
    <table>
        <tr>
            <td>此处输入值:</td>
            <td><input id="x_userName" type="text" name="userName" /></td>
        </tr>
    </table>

    <p id="message">

    </p>
    <script type="text/javascript">

        var bind_onchange = function (eleid, func) {
            var ctrl = $("#" + eleid);
            if ($.browser.msie) {
                ctrl.get(0).onpropertychange = function () { func(ctrl); };
            } else {
                var intervalName; // 定时器句柄
                // 获得焦点时,启动定时器
                var text0 = "";
                $(ctrl).focus(function () {
                    intervalName = setInterval(function () {
                        if (ctrl.val() == text0) return;//内容不同,触发func
                        text0 = ctrl.val();
                        func(ctrl);
                    }, 500);//500毫秒检查一次
                });
                // 失去焦点时,清除定时器
                $(ctrl).blur(function () {
                    clearInterval(intervalName);
                });
            }
        }
        var s1jj = 0;
        bind_onchange("x_userName", function (obj) {
            $("#message").html(obj.val() + (s1jj++).toString());
        });

    </script>
</body>
</html>

  

posted @ 2017-09-05 16:09  以函  阅读(132)  评论(0编辑  收藏  举报