6.oninput & onchange & onpropertychange 区别

1.onchange  

  弊端:1.元素失去焦点时触发

       2.如果得用javascript改变触发对象的属性时,并不能触发onchange事件,oninput也有这个问题。

2.oninput     该事件在 <input> 或 <textarea> 元素的值发生改变时触发。

  例:

  <input type="text" id="myInput" oninput="myFunction()">
  <p id="demo"></p>

  <script>
  function myFunction() {
    var x = document.getElementById("myInput").value;
    document.getElementById("demo").innerHTML = "你输入的是: " + x;
  }
  </script>

  该事件类似于 onchange 事件。不同之处在于 oninput 事件在元素值发生变化是立即触发, onchange 在元素失去焦点时触发。

  IE9以下的浏览器是不支持oninput事件的。

  不但JS 改变 value 值时不能触发,有从浏览器的自动下拉提示中选值时,也不会触发。

3.onpropertychange   

  property(属性)change(改变)的时候,触发事件。这是IE专有的!如果想兼容其它浏览器,有个类似的事件,oninput!

  onpropertychange会在设置disable=true的时候失效。而且,onpropertychange是在触发对象改变任何属性时都会触发。而oninput只是在改变input的value值时才触发。

posted on 2016-08-07 11:44  cimyZhang  阅读(118)  评论(0编辑  收藏  举报