• ベストアンサー

コントロールにフォーカスをおくとカナモードになる

言語バーのKANAが有効になっている状態で半角カナを入力し、submitをかけ、その後にKANAを無効にして、フォーカスをコントロール(どれでも)におくと自動的にKANAが有効になってしまいます。 これはなぜでしょうか??どっかでこのモードが保持されているのでしょうか?? KANAの有効無効の設定はCtrl+Shift+カタカナひらがなボタンで行っています。 すごいわかりにくい説明ですいません。説明するのがむずかしい。。。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

Wizard_Zeroです。 こちらでも再現に成功しました。 【IMEをOFFの状態(直接入力)で「KANA」を有効にする】と、ime-mode : disabled に設定された入力フォームに移動しても設定が維持されてしまいます。これの解除は、HTMLからではどうにもなりません。 移動前が【IMEをONの状態(直接入力以外)で「KANA」を有効】の場合は、ちゃんと数値が入力できました。 これは、IMEが[KANA]の状態をONの時とOFFの時の両方で個別に保持している、ということです。 (あたまでは分かっているのですが説明がムズイ) 以下余談: 私が思うに、この方法(IMEがOFFの状態で[KANA]をオン)で半角カナを入力する人はそれほど多くはないと思います。おそらく多くの人が、IMEをONの状態で「半角カタカナ」を選択し入力、あるいは「ひらがな」で書いて[F8]で変換しているのではないでしょうか?

jim_23
質問者

お礼

う~ん。たしかにKANAをオンにして入力する方は少ないとは思いますが、実際にデモという形で関係者に入力してもらったところ、そういう扱い方をされたので対応しないことには。。。 実際に他のサイトで登録フォームみたいなのをいくつか参照しましたが、電話番号など数値入力のところでもIMEの制限はされていないものばかりでチェックは登録時に行っていました。泣く泣くこの方法をとりました。かなり量が多かったので大変でしたが。。。 何度もアドバイスをいただきありがとうございました!!!また機会があればよろしくおねがいします!!!!

その他の回答 (3)

回答No.3

Wizard_Zeroです。 電話番号入力コントロールって、HTMLの入力フォームではなく、AcriveXコントロールですか? 入力フォームならスタイルシートでIMEを無効にすれば半角英数しか入力できないようになりますが。(ただしIE限定) こっちでは、入力フォームをいくつか配置して移動する分には、直前のIMEモードが維持されるので、連続して数値を書くことが出来ます。 OS、ブラウザ、IMEは何をお使いでしょう? (MS-IME以外は持ってないのでこっちで再現できません)

jim_23
質問者

補足

原因がわかったような気がします。 半角で入力させる入力コントロールには STYLE="ime-mode:disabled;" をつけていました。 このコントロールにフォーカスをやると全角ひらがななどはうてなくなっていますが、言語バー一番右のCAPS・KANAは有効であるままです。要するに電話番号等を入力する際にKANAを戻しても、IMEとしては戻したことを保持してないってことでしょうか(disabledにしてるから)?CAPSとKANAも無効にするってのは無理ですよね~・・・

回答No.2

Wizard_Zeroと申します。 一応CSSにIMEをコントロールする方法はあるのですが、IMEのON/OFFくらいしか出来ません。(他の方法ならあるかも知れませんが、私は知りません) 保持しないようにすることも難しいでしょう。逆に言うと、ユーザーがコントロール内で設定を変えるまで保持されるのが、本来あるべき動作です。 「入力フォームから送られるデータが半角カナでなければならない」という制限の元でのプログラムだと思いますが、私ならひらがな・全角カタカナ・半カタカナはとりあえず受け取って、ASP内で半角カタカナに変換します。変換後に半角カタカナ以外の文字を発見したら、ユーザーに再入力を求めるようにしますね。変換はBASP21で出来たと思います。

参考URL:
http://www5e.biglobe.ne.jp/~access_r/hp/css/css_ime_001.html
jim_23
質問者

補足

う~ん。例えばsubmitをかけた後、電話番号入力コントロールで市外局番にフォーカスセットした時カナモードになっているからとカナモードを無効にし番号を入力したあと市内局番にフォーカスセットすると自動的にカナモードになってしまうから困っているのです。。。ユーザが設定を毎回毎回変えないといけないので。 元々カナでないといけないなどの制限はないのですが、実際ユーザ数は何百人にもなる為、ローマ字入力じゃダメだとかいう制限はできないってことで困ってます。

回答No.1

Wizard_Zeroと申します。 > どっかでこのモードが保持されているのでしょうか?? そうです。 なので、submitする前にKANAを無効にすれば大丈夫です。

jim_23
質問者

補足

説明不足ですいません。 あくまでシステムを作っている立場なので、ユーザにSubmitする前に無効にしてくださいとは言えません。 違う方法で解決できないでしょうか??保持しないようにとか・・・。

関連するQ&A

専門家に質問してみよう