oninput,onpropertychange,onchange的用法
onchange触发事件必须满足两个条件:
a)当前对象属性改变,并且是由键盘或鼠标事件激发的,如果得用javascript改变触发对象的属性时,
并不能触发onchange事件;
b)当前对象失去焦点(onblur);
onpropertychange 顾名思义,就是property(属性)change(改变)的时候,触发事件。这是IE专有的!
只要当前对象属性发生改变,都会触发事件
oninput是onpropertychange的非IE浏览器版本,支持firefox和opera等浏览器,但有一点不同,它绑定于对象时,并 非该对象所有属性改变都能触发事件,它只在对象value值发生改变时奏效。
实例:
(1)<textarea onpropertychange="abc();" oninput="abc();" id="a">
(2)
if(isIE) {//IE专属
document.getElementById("a").onpropertychange = abc();
} else {//firefox下检测状态改变只能用oninput,且需要用addEventListener来注册事件。
document.getElementById("a").addEventListener("input", abc, false);
}