使用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);
注:以上只是提供一個監聽失效的思路,僅供參考,若有錯誤歡迎指出.