入力フォームでの IME コントロール(日本語入力切り替え)

概要

入力フォームの日本語入力切り替えを行う方法を紹介します。

「全角で」「半角で」とフィールドによって入力文字種別を制限している場合に、入力者がそのフィールドに移動した時に自動的に入力モードの切り替えを行えます。

利用範囲

切り替えが有効になるブラウザは、Windows の Internet Explorer のみです。
他のブラウザだと何も起こりません。

日本語の他、韓国語、中国語のフォームの場合も同じ方法が使用できます。

コードサンプル

関数定義

入力切り替えを行う関数を、ページの <head> 内などに指定します。

<script type="text/javascript"><!–
function set_imemode(myobj, mymode){
    switch(mymode){
        case 0: myobj.style.imeMode = "inactive"; break;
        case 1: myobj.style.imeMode = "active"; break;
        default: break;
    }
}
// –></script>

入力フィールド部分

お名前(全角)
<INPUT name="name" type="text" value="" onFocus="set_imemode(this, 1)"><br>

電話番号(半角)
<INPUT name="tel" type="text" value="" onFocus="set_imemode(this, 0)">

解説

関数 set_imemode は引数を2つとります。
1つ目の引数は、対象とするオブジェクト、つまりフォームの入力フィールドを指定します。
2つ目の引数は入力モードをONにするかOFFにするかの設定で、0 で OFF(英数モード)、1 で ON(日本語入力モード)となります。

入力フィールド部分は、onFocus で「そのフィールドに移動したら 関数 set_imemode を実行する」という設定をします。
第1引数は入力フィールドそのものなので、「this」で指定できます。
第2引数は、入力フィールドの内容によって半角(英数字)なら 0、全角(日本語)なら 1 を指定します。