使用juery监听Input输入的变化,并且封装起来,如下:
// html
<input type="text" id=‘myinput1’ />
// js
function formOnById(id){let dom = '#' + id;$(dom).bind('input propertychange',()=>{let item = $(dom).val;console.log(item);}
}
formOnById('myinput1');
// 以上代码监听input id='id',的输入框的变化.并打印出input中的值到控制台
问题在于,有时候这样监听会很危险
因为在项目中,有时候dom是动态更新的,即:在监听的时候,input并没有出来.此时的监听是无效的…
// 举个栗子
// html<div ng-if="showInput"><input type="text" id="myinput1' /></div>// 此时调用上面的函数,监听输入是监听不到的,,,// 可以考虑使用setTimeout函数,延迟监听(0.3秒左右,用户感应不到)..setTimeout(() =>{formOnById('myinput1');}, 0.3 *1000);
注:以上只是提供一个监听失效的思路,仅供参考,若有错误欢迎指出.