Webアプリを作っていると、たまにtextエリアのimeモードを強制的にON/OFFしたい事があります。
対象ブラウザが IE であれば、css の ime-mode を使うことで制御可能です。
これは、巷にあふれる使い方を見て頂ければ。
ところで、現在バーコードリーダを使ったWebアプリを作成しているのですが、タブレットの使用も検討しているのでIEのime-modeを使うことが出来ません。
どうにかしないと、バーコードの入力エリアに全角数値が羅列してしまい、具合の悪いことになってしまいます。
しかし、JavaScriptを使おうが、何を使おうが制御出来ないらしいです。
これは、ブラウザやシステムに大きく依存する事があるため、実装が難しいという事実があったり、ユーザが思ってもいない動作をすることが喜ばれないからであると、書かれている記事もあります。
そこで、色々考えました。
今回は、バーコードを入力するエリアが限られております(というか、そういう作りにしました)。
バーコードの入力が完了したあとで、そこからデータを引っ張り出し、他のtextエリアにセットしています。
というのも、2次元バーコード(QRコード)も読み取り対象となっているためです。
つまり、バーコード入力エリアは、見えていようが見えていまいが、データが正しく半角英数で入力出来れば事が足ります。
そこで、気が付きました。
バーコードエリアをtype=”password”にすれば良いのではないかと・・・・
非常に限られた用途ではありますが、これで間違いなくバーコードを入力できるエリアが出来ました。
コロンブス的発想ではありますが、これは、非常に有効です。
あとは、体裁を上手に整えれば、遜色ないWebアプリが出来上がるでしょう。
めでたしめでたしです(笑)