js與jquery即時監聽輸入框值的oninput與onpropertychange方法,jqueryoninput

來源:互聯網
上載者:User

js與jquery即時監聽輸入框值的oninput與onpropertychange方法,jqueryoninput

本文執行個體講述了js與jquery即時監聽輸入框值的oninput與onpropertychange方法。分享給大家供大家參考。具體如下:

最近做過一個項目,需求是下拉框裡自動匹配關鍵字,具體細節是即時監聽文字框 value 值的變化,然後匹配相關內容。

初接項目,首先想到的是 JQ 裡的 change,但是馬上排除此方法,因為 change 是在文字框失去焦點時才會觸發。曲線救國一下,想到用 keydown 來解決。其他一切還好,只是當不通過鍵盤操作,而是通過滑鼠來複製粘貼時,這個事件是無法觸發的。所以這個方法也排除掉了。

然後,查詢了一些相關資料,發現只有原生 js 的 oninput & onpropertychange 符合此要求,接著便去 JQ 的 API 裡去找符合的方法,很失望,並未找到,但是 bind 確實會綁定類似的事件,那便是 input & propertychange,通過測試,確實是沒問題的。

現在將例子奉上:

JQ:

$('input').bind('input propertychange', function() {  //進行相關操作 });

其中:propertychange 是為了相容 IE9 以下版本的。

JS中的 oninput 事件在 IE9 以下版本不支援,需要使用 IE 特有的 onpropertychange 事件替代,這個事件在使用者介面改變或者使用指令碼直接修改內容兩種情況下都會觸發,有以下幾種情況:

修改了 input:checkbox 或者 input:radio 元素的選擇中狀態, checked 屬性發生變化。

修改了 input:text 或者 textarea 元素的值,value 屬性發生變化。
修改了 select 元素的選中項,selectedIndex 屬性發生變化。
JS:

if(isIE) {  document.getElementById("input").onpropertychange = keys(); } else //需要用addEventListener來註冊事件 {  document.getElementById("input").addEventListener("input", keys, false);}

希望本文所述對大家的javascript程式設計有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.