input 即時搜索 監聽輸入值的變化

Web 開發中常常會碰到須要動態監聽輸入框值變化的狀況,若是使用 onkeydown、onkeypress、onkeyup 這個幾個鍵盤事件來監測的話,監聽不了右鍵的複製、剪貼和粘貼這些操做,處理組合快捷鍵也很麻煩。所以這篇文章向你們介紹一種完美的解決方案:結合 HTML5 標準事件 oninput 和 IE 專屬事件 onpropertychange 事件來監聽輸入框值變化。javascript

oninput 是 HTML5 的標準事件,對於檢測 textarea, input:text, input:password 和 input:search 這幾個元素經過用戶界面發生的內容變化很是有用,在內容修改後當即被觸發,不像 onchange 事件須要失去焦點才觸發。oninput 事件在主流瀏覽器的兼容狀況以下:html

從上面表格能夠看出,oninput 事件在 IE9 如下版本不支持,須要使用 IE 特有的 onpropertychange 事件替代,這個事件在用戶界面改變或者使用腳本直接修改內容兩種狀況下都會觸發,有如下幾種狀況:java

  • 修改了 input:checkbox 或者 input:radio 元素的選擇中狀態, checked 屬性發生變化。
  • 修改了 input:text 或者 textarea 元素的值,value 屬性發生變化。
  • 修改了 select 元素的選中項,selectedIndex 屬性發生變化。

 html瀏覽器

<div class="wrap"> <textarea></textarea> <div class="msg"></div> </div

js
$('textarea').bind('input propertychange', function() { $('.msg').html($(this).val().length + ' characters'); });
相關文章
相關標籤/搜索