使用场景:在项目中有时会需要动态监听输入框值的变化,使用input、textarea的change事件,却感觉和失焦事件blur类似。替换成onkeyup或者onkeydown事件吧,触发频率又太高,还得写个防抖节流,麻烦且繁琐。
现在有propertychange做替代,使用体验就和change一样了。
html
<input type="text" id="input1">
jq
$('#input1').on('input propertychange',function(){
console.log($(this).val());
})
用vue写的时候,实时的方法可以为:
<input type="text" v-model="input1" @input="cartInput"/>
cartInput() {
console.log(this.input1, "input1------");
},
注意:
oninput 和 onpropertychange 这两个事件在 IE9 中都有个小BUG,那就是通过右键菜单菜单中的 剪切 和 删除 命令删除内容的时候不会触发,而 IE 其他版本都是正常的,目前还没有很好的解决方案。