原生JS中的onInput事件


原生JS中的onInput事件

當處於中文輸入法狀態時,不管是文字還是數字,都會造成oninput事件重復執行的問題。 在中文輸入法狀態中,還在檢索拼音,這時事件就會觸發,輸入完成后又會觸發一次。

我們可以使用js里面防抖動的方式或DOM3的復合事件來解決此問題。

回顧一下onchange和input事件:
oninput事件在input或textarea元素的值發生改變時觸發

onchange事件也是監聽文本框變化后觸發,不同的是oninput事件是立即(即時)觸發,onchange則是在元素失去焦點時觸發

onchange的觸發頻率僅次於oninput事件

使用DOM3以下三種復合事件:
1、compositionstart:官方解釋,觸發於一段文字的輸入之前,也就是在輸入一段需要的文本(第一個字母開始)或語音開始輸入時會觸發。
2、compositionupdate訪問data:正插入的新字符;
3、compositionend訪問data:插入的所有字符;

文本框會填入 “虛擬文本”(待確認文本),同時觸發input事件;在觸發compositionend時,就是填入實際內容后(已確認文本)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM