IE9下 input监听输入时不实时监听退格删除的问题

  前端页面经常需要实时监听文本输入框的变更,在使用input、propertychange事件时发现在ie9浏览器中,退格、删除按钮都无法触发该事件,网上搜了一下发现ie9还存在比较多的问题。

  需求:三个输入框,只能输入一个,当其中一个有值,则其余两个被禁,若都无值,则全部都可输入。

 可添加keyup事件

$("#serial-number-val").on('input', function () {
   isSerialNumberValFn(this.value);
});
function isSerialNumberValFn(serialVal){
    if(serialVal != ''){
        $("#amount-val").attr("disabled", "disabled");
        $("#authorization-val").attr("disabled", "disabled");
    } else if (serialVal == '') {
        $("#amount-val").removeAttr("disabled");
        $("#authorization-val").removeAttr("disabled");
    }
}

但是在IE9及以上不起作用,那就苦了小宝宝了o(╥﹏╥)o,但是经过查找总算解决了:

document.getElementById('serial-number-val').addEventListener('keyup',function(){
     isSerialNumberValFn(this.value);
});
function isSerialNumberValFn(serialVal){
    if(serialVal != ''){
        $("#amount-val").attr("disabled", "disabled");
        $("#authorization-val").attr("disabled", "disabled");
    } else if (serialVal == '') {
        $("#amount-val").removeAttr("disabled");
        $("#authorization-val").removeAttr("disabled");
    }
}

  那么该问题即可解决啦。。。

  还有普及一下,input的事件除了以上方法外,还有 input  propertychange  change 这些方法,根据需求而定哈~~

原文地址:https://www.cnblogs.com/btsn/p/14006840.html