<div style="border:1px solid #fc0;height:24px;width:300px;" id="target"></div><br /> <input name="filltext" oninput="document.getElementById('target').innerHTML=this.value" id="filltext" type="text" />
onpropertychange事件,顧名思義,就是property(屬性)change(改變)的時候,觸發事件。這是IE專有的!如果想兼容其它瀏覽器,有個類似的事件,oninput!
可能大家會想到另外一個事件:onchange。
但是,onchange有兩個弊端,一、就是它在觸發對象失去焦點時,才觸發onchange事件。二、如果得用javascript改變觸發對象的屬性時,並不能觸發onchange事件,oninput也有這個問題。
onpropertychange會在設置disable=true的時候失效。而且,onpropertychange是在觸發對象改變任何屬性時都會觸發。而oninput只是在改變input的value值時才觸發。
oninput 事件:不但JS 改變 value 值時不能觸發,有從瀏覽器的自動下拉提示中選值時,也不會觸發。
onpropertychange觸發函數只有一個默認參數,是所以可以觸發屬性的集合
<script type="text/javascript"> document.getElementById('filltext').attachEvent('onpropertychange',function(){ console.log(arguments.length); for(var i=0;i<arguments.length;i++) { console.log(arguments[i]); } }); </script>
看執行結果: