這時候,咱們就能夠採用最佳解決方案:HTML5標準事件oninput和IE專屬的事件properchange。
propertychange 和 input 事件:
1)propertychange只要當前對象的屬性發生改變就會觸發該事件,功能同oninput,用以替代oninput在IE9如下的不兼容性。
2)input是標準的瀏覽器事件,通常應用於input元素,當input的value發生變化就會觸發該事件,不管是鍵盤輸入仍是鼠標黏貼的改變都能及時監聽到變化
實現代碼以下,這裏bind同時綁定了input和propertychange兩個方法:
$('#username').bind('input propertychange', function() { console.log($(this).val()); });
2、實現了實時監聽input輸入值,下一步就是驗證格式,實時進行處理
這裏選擇用正則表達式和replace()方法去實現,正則表達式能夠根據具體需求去寫,這裏用只限輸入數字的例子,實現代碼以下:
$('#username').bind('input propertychange', function() { console.log($(this).val()); $(this)[0].value = $(this).val().replace(/[^0-9]/g,'') });