社内SEの徒然なる日記

HTMLのimeの設定切替ってどうしよう?

■ ime-mode

HTMLで入力項目を作る時に、日本語入力をoff。つまり、半角文字だけ入力できるようにしたいことがあります。

要件としては珍しくないと思うのですが、現在では悩ましいです。いや、設定自体は簡単なのでしょうが・・・

スタイルシートを使うなら、こんな感じでしょうか。



.input80TextImeOff {width: 80px; ime-mode:disabled;}

<INPUT class="input80TextImeOff" type="text" maxlength="8"
value="" tabIndex="-1" id="testinput">




いっその事、style属性で指定する方法も・・・


<INPUT class="" type="text" maxlength="8" value="" tabIndex="-1" id="testinput"
style="width: 80px; ime-mode:inactive;">




問題なのは、ime-mode 自体がIEの独自仕様ってこと。iPadとかだと無意味だし、世間の潮流を考えると使わない方が無難な気がします。

■ type="number"

さて、もうどうしようもないのかと思ったのですが、HTML5ではtype属性に使える値が増えたようで、numberと指定すれば似たような動作をしそうです。



<INPUT class="input80TextImeOff" type="number" maxlength="8"
value="" tabIndex="-1" id="testinput">




見た目やシステム的な動作は type="text" とした場合と変わらない感じ。でも、これはこれで問題ありそう。

半角数字のみが入力可能で、それ以外(全角文字、英数、記号)も入力までは出来るのですが、カーソルを移動したりした瞬間に消えてしまいます。

半角英数字の入力って要件だと、ちょっとイマイチ。そして何よりも、IEの互換表示設定を使っていると機能しない。下位互換を考えると、実装は考え物です。

■ 後書き

それにしても、互換表示設定の機能について誤解していました。HTML5の新しい機能も多少は動くと思っていたのですが、本気で下位のバージョンと同じ動作をさせているようです。

・・・まぁ、考えてみたら当たり前なのですがね。

しかし、今回のime。どうしましょうか。numberも悪くはないのですが、半角英数や記号も弾かれるのだと「半角のみ」って要件を満たせません。ちょっと困りました。

超高速で大量のオペレーションをする人の事を考えると少しでも負担を減らしてあげたいのですが、システム的に難しいとなると諦めた方が良いのかとも思います。javaScriptとかでゴリゴリする手もありますが、後で祟りそうだし。

そういえば、Microsoftご自慢の最新ブラウザ「edge」の対応ってどうなってるのでしょうか。手元に環境が無いから実験できないけど、多分ダメなんだろうなぁ(IEの独自仕様をなくすのが目的だろうし)。

最新の記事:http://harikofu.blog.fc2.com/
投稿記事の一覧:http://harikofu.web.fc2.com/

--- blog end --- スポンサードリンク

PageTop

コメント


管理者にだけ表示を許可する