日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js如何判断当前文本的输入状态——中文输入法的那些坑

發布時間:2025/3/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js如何判断当前文本的输入状态——中文输入法的那些坑 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

相信各位在平時接需求的時候肯定會遇到這樣的一些需求,例如,要求輸入框限制輸入長度,限制輸入類型,限制只能英文輸入,限制只能輸入大寫字母等等,這時候我們一般的思路無非兩種,一種是彈出特定的鍵盤,第二種是在輸入的過程中對輸入內容進行正則匹配,然后根據自己的需求對input框進行賦值。彈出特定鍵盤可以通過對input框的type屬性進行賦值,但由于不同的瀏覽器對彈出的輸入框都有比較嚴格的限制,并且彈出之后用戶可以進行切換,達不到限制用戶輸入的目的,所以接下來主要討論第二種方法。

一般說到修改用戶的輸入,第一個想法肯定是綁定input事件,input事件能夠檢測用戶的每一次輸入,例如我們要將用戶輸入的文字實時轉換成大寫,只需要input事件綁定以下方法

function(e){
e.target.value=e.target.value.toUpperCase()
}
這種方法對于英文輸入時完全沒毛病,但是一旦用戶切換到中文輸入法或者手寫輸入,你就會發現,問題來了,input事件會觸發,但你每次捕獲到的e.target.value卻不是你輸入的中文,例如我們執行下面的代碼

document.getElementById('testInput').addEventListener('input',function(e){
console.log('輸入內容:'+e.target.value);
},false);
你會發現是這樣一種情況(測試工具:chome,ie經過測試并未存在此問題)

?

?

那么,我們如何捕獲中文輸入法或者其他非直接輸入法的輸入狀態呢,參考以下兩個事件

1.compositionstart,事件觸發于一段文字的輸入之前(類似于?keydown?事件,但是該事件僅在若干可見字符的輸入之前,而這些可見字符的輸入可能需要一連串的鍵盤操作、語音識別或者點擊輸入法的備選詞)

2.compositionend,當文本段落的組成完成或取消時, compositionend 事件將被激發 (具有特殊字符的激發, 需要一系列鍵和其他輸入, 如語音識別或移動中的字詞建議)

簡單來說,非直接輸入法如中文輸入開始時,觸發compositionstart事件,結束時觸發compositionend事件,這樣,我們跟input事件進行配合,就能對所有的輸入進行實時的檢測了,示例代碼如下

window.οnlοad=function(){
var doing=false;
var doSomething=function(e){
//我要干點啥
}
document.getElementById('testInput').addEventListener('compositionstart',function(e){
doing=true;
},false);
document.getElementById('testInput').addEventListener('input',function(e){
if(!doing){
doSomething();
}
},false);

document.getElementById('testInput').addEventListener('compositionend',function(e){
doing=false;
doSomething();
},false);
}
最后,這兩個事件比較新,并不兼容所有的瀏覽器,但經過測試,兼容目前大部分的移動端瀏覽器,ie9仿真情況下測試通過,chome測試通過,Firefox9.0以上測試通過

參考資料:

compositionstart相關

compositionend相關
---------------------
作者:小敏哥
來源:CSDN
原文:https://blog.csdn.net/handsomexiaominge/article/details/80977402
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

轉載于:https://www.cnblogs.com/asdyzh/p/9829678.html

總結

以上是生活随笔為你收集整理的js如何判断当前文本的输入状态——中文输入法的那些坑的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: www久久com| 黄网站在线免费看 | 欧美日韩精品一区二区三区蜜桃 | 黄色特级一级片 | 久久精品视频99 | 高清三区 | 日韩在线观看视频一区二区三区 | 国产一区精品久久 | 一本久久道 | 免费草逼视频 | www,超碰 | 久久四色 | 色欲亚洲Av无码精品天堂 | 在线观看视频你懂得 | 无码一区二区三区免费视频 | 欧美日韩中 | 尹人综合在线 | 黄色av网站在线免费观看 | 成人黄色免费网 | 日日干日日草 | 日本一二三区在线视频 | 一级免费大片 | 国产另类综合 | 好男人网站 | 国产97色在线 | 日韩 | 欧美看片 | 亚洲男女一区二区三区 | 射射射综合网 | 97超碰在线免费观看 | 综合网五月 | 欧美激情三级 | 国产精品日韩欧美一区二区三区 | 亚洲欧美视频一区二区 | 久久99久久99精品 | 鲁鲁在线 | 黑人玩弄人妻一区二区三区 | 欧美福利社 | 人人草人人爽 | 亚洲精品中文字幕在线观看 | 日本欧美黄色 | 色8久久 | 欧美激情xxx | 国产深夜视频 | 91成人在线免费视频 | 四虎国产在线 | 日韩免费高清一区二区 | 人妻精品久久久久中文 | 午夜精品久久久久久久第一页按摩 | 午夜日韩 | 国产精品入口免费 | 精彩久久 | 亚洲欧洲国产综合 | 亚洲欧美乱日韩乱国产 | 久久视频在线免费观看 | 香蕉视频黄版 | 粉嫩av一区 | 国产国语videosex另类 | 五月天丁香婷 | 国产一二 | 麻豆va | 天天噜| 两根大肉大捧一进一出好爽视频 | 午夜精品久久久久久久99热浪潮 | 小仙女av| 黄色片在哪看 | 国产女女调教女同 | 精品免费一区二区 | 欧美激情视频一区二区三区在线播放 | 姝姝窝人体www聚色窝 | 日韩久久一区二区三区 | h在线| 国产熟女高潮一区二区三区 | 色夜av| 欧美爱爱一区二区 | 全部免费毛片在线播放一个 | 国自产拍偷拍精品啪啪一区二区 | 国产黄色精品网站 | 色综合视频 | 韩国特级毛片 | 亚洲先锋影音 | 72pao成人国产永久免费视频 | 尤物精品在线观看 | 奇米中文字幕 | 一道本不卡视频 | 我的好妈妈在线观看 | 一区二区在线国产 | 久久久96人妻无码精品 | 神马午夜在线观看 | av不卡在线观看 | 麻豆高清免费国产一区 | 人妻少妇偷人精品视频 | 欧洲亚洲视频 | 国产精品探花在线观看 | 亚洲图区综合 | 日韩极品在线观看 | 北条麻妃一区二区三区四区五区 | 先锋影音制服丝袜 | 91黄色免费看 | 裸体女人a级一片 |