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 这些方法,根据需求而定哈~~