天天看点

JavaScript 实时监听input中值变化

代码

方式一:

<!DOCTYPE html>
<html>
<head>
    <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
    <title>测试</title>
</head>
<body>
    <input class="et-name" type="input" name="name">

    <script type="text/javascript">
        $(function () {
            $(".et-name").bind("input propertychange", function () {
                console.log($(".et-name").val());
            });
        });
    </script>
</body>
</html>
           

方式二:

<!DOCTYPE html>
<html>
<head>
    <title>测试</title>
</head>
<body>
    <input class="et-name" type="input" name="name" oninput="myFun()">

    <script type="text/javascript">
        function myFun() {
            console.log($(".et-name").val());
        }
    </script>
</body>
</html>
           

方式三:

<!DOCTYPE html>
<html>
<head>
    <title>测试</title>
</head>
<body>
    <input class="et-name" type="input" name="name" onchange="myFun()">

    <script type="text/javascript">
        function myFun() {
            console.log($(".et-name").val());
        }
    </script>
</body>
</html>
           

类似于,实现微博的‘还能输入xxx个字符’

oninput,onpropertychange,onchange的用法

onchange触发事件必须满足两个条件:

a)当前对象属性改变,并且是由键盘或鼠标事件激发的(脚本触发无效)

b)当前对象失去焦点(onblur);

onpropertychange的话,只要当前对象属性发生改变,都会触发事件,但是它是IE专属的;

oninput是onpropertychange的非IE浏览器版本,支持firefox和opera等浏览器,但有一点不同,它绑定于对象时,并非该对象所有属性改变都能触发事件,它只在对象value值发生改变时奏效。

继续阅读