概要
入力フォームの日本語入力切り替えを行う方法を紹介します。
「全角で」「半角で」とフィールドによって入力文字種別を制限している場合に、入力者がそのフィールドに移動した時に自動的に入力モードの切り替えを行えます。
利用範囲
切り替えが有効になるブラウザは、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>
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 を指定します。