如何在網頁輸入時停用中文輸入法? (限IE/FF)

回覆文章
yehlu
Site Admin
文章: 3244
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

如何在網頁輸入時停用中文輸入法? (限IE/FF)

文章 yehlu »

http://blog.darkthread.net/post-2010-10 ... e-css.aspx

專案有個需求,網頁中有些<INPUT>輸入欄位只接受英數字,並加掛了Javascript按鍵事件,依特定規則對輸入字元進行過濾。

接獲使用者回報,當使用新注音輸入法操作該輸入欄位時,會產生非預期的結果。猜想應是Javascript事件得配合輸入法的某些特殊行為進行調整,但轉念一想,由於專案規格已限定瀏覽器版本,何不試著找看看瀏覽器的特異功能來解問題? 在Web上實現WinForm常見的操作情境 -- 當輸入某個TextBox時暫時停用中文輸入法。

結果我找到了ime-mode,一個只有IE與FireFox支援的特殊CSS屬性。當設成ime-mode: disabled,若輸入焦點停在該INPUT,Windows會自動停用中文輸入法,切回英文輸入模式。若不在意跨瀏覽器的需求,這是個實用的好功能!

用一個例子示範:

代碼: 選擇全部

<input type="text" id="t1" />
<input type="text" id="t2" style="ime-mode:disabled" />
<input type="text" id="t3" />
操作測試,一開始焦點停在t1,切換為中文輸入法(新注音、新倉頡... 等),輸入一個中文字;按Tab移到t2時,會發現中文輸入法被停用了;再按Tab移到t3,中文輸入法就又回來了。

就醬,很簡單易用吧!
yehlu
Site Admin
文章: 3244
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

Re: 如何在網頁輸入時停用中文輸入法? (限IE/FF)

文章 yehlu »

chrome

http://www.myexception.cn/cross-browser/289068.html

代碼: 選擇全部

<input type="text" style="ime-mode:disabled" onkeyup="this.value=this.value.replace(/[\u4e00-\u9fa5]/g,'')"/>
smithjon
文章: 1
註冊時間: 2015-02-19 12:46:02

Re: 如何在網頁輸入時停用中文輸入法? (限IE/FF)

文章 smithjon »

接獲使用者回報,當使用新注音輸入法操作該輸入欄位時,會產生非預期的結果。猜想應是Javascript事件得配合輸入法的某些特殊行為進行調整,但轉念一想,由於專案規格已限定瀏覽器版本,何不試著找看看瀏覽器的特異功能來解問題? 在Web上實現WinForm常見的操作情境 -- 當
You can get score highest marks in Pass4sure comptia a+ dumps exam using and test ccna 200-101 boot camp king which are prepared by top certified professionals, Tabor College ccna wireless training; both are marvelous in www.the-bac.edu
回覆文章

回到「HTML + CSS」