nput框在輸入切換中文輸入法時的輸入事件
1、compositionstart
compositionstart事件只有在輸入中文時才會觸發,觸發事件在input事件之前
2、compositionend
compositionend表示結束中文輸入時觸發的事件,不管最后輸入的是不是中文都會觸發
3、input
input事件就是最后輸入到輸入框的事件
4、如何應用這些事件
利用這些事件,可以在輸入中文的時候,保證在輸入完畢之后才執行input事件的代碼,不用每輸入一個字符就執行一次input事件的代碼了,如下圖
下面是我的代碼,做一下參考:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>input功能</title> <script src="js/jquery-3.4.1.min.js"></script> </head> <body> <input id="ahri" type="text"/> <script> $(() => { let typing = false; // 輸入中文之前 $('#ahri').on('compositionstart',function(event) { console.log('compositionstart'); typing = true; }) // 輸入中文之后 $('#ahri').on('compositionend',function(event) { console.log('compositionend'); typing = false; input(event); }) // 真正輸入文字 $('#ahri').on('input',input) function input(event) { // 正在輸入中文時就不執行后面的代碼 if(typing) return; console.log(event.target.value); } }) </script> </body> </html>
版權聲明:本文為CSDN博主「昔別一展鯤鵬意」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/nosuchobjecterror/article/details/93193229