监听input内容改变的oninput与onpropertychange在ie9的bug
在做autocomplate的时候发现,ie9中,剪切、退格、删除不触发oninput事件,而ie9和ie9+已经移除了onpropertychange事件。
只好尝试添加退格、delete、剪切事件,来触发onpropertychange
1 var input = $("#J_autocomplete"); 2 var fn = function(){ 3 // console.log('value changed') 4 } 5 input.bind('input.autocomplete',fn) 6 .bind('propertychange.autocomplete',function(e){ 7 if(e.originalEvent.propertyName && e.originalEvent.propertyName == 'value'){ 8 fn.call(this,e); 9 } 10 }); 11 12 13 //ie9支持addEventListener,ie10开始支持FileReader api 14 if(documnt.all && typeof FileReader === 'undefined' && window.addEventListener){ 15 //退格与删除 16 input.bind("keydown.autocomplete", function(e) { 17 var key = e.keyCode; 18 (key == 8 || key == 46) && $(this).trigger('input.autocomplete'); 19 20 }); 21 //剪切 22 input.bind("cut.autocomplete", function(e){ 23 $(this).trigger('input.autocomplete') 24 }); 25 }