onchange事件

一、onchange
一般input type text的onchange事件的触发需要两个条件:1.输入框的值发生了改变;2.该文本框失去了焦点,而真正的事件的触发却是发生在该文本框失去焦点的时候,如果需要当值改变的时候就去触发,则需要用onpropertychange或者是oninput。

二、onpropertychange/oninput

1.在IE下,可以用onpropertychange来代替onchange事件,当文本框有任何变化时,能立即触发此事件.

2.在其他浏览器下可以使用oninput事件来达到onpropertychange事件同样的效果

三、使用onpropertychange/oninput的两种方式

1.在页面直接使用

<input type="text" name="myname" oninput="alert(this.value);" onpropertychange="alert(this.value)" />

2.把他们分离到js中的使用

注意在js中使用他们的时候oninput和普通事件注册的方法有些不同,必须使用addEventListener来注册。

<script type="text/javascript"> 

function testdemo() {
    var element = document.getElementById("myname");
    if ("v" == "v") {
        element.onpropertychange = textChange;
    } else {
        element.addEventListener("input", textChange, false);
    }
    function textChange() {
        alert(element.value);
    }
}
</script> 
<body> 
<input type="text" name="myname" id="myname" /> 
<script type="text/javascript"> 
    testdemo(); 
</script> 
</body> 

IE6、IE7、IE8、Firefox

chrome和appframework框架待续。。

原文地址:https://www.cnblogs.com/haimingpro/p/4110824.html