none
IME-MODEのモード指定がうまくゆかない。 RRS feed

  • 質問

  • 丹羽と申します。

     

    VS2005にてASP .NETを勉強中です。

     

    Webフォーム内で定義したTextBoxのフォーカス時、日本語入力モード

    制御しよう思いましたら、うまくゆきません。

     

    スタイルシートにて定義しても機能しない。

    例)

    <script type="text/css">
    <!--
    #ctl00_Main_TextBox1{
        ime-mode:active;
    }
    -->
    </script>


    をマスターページ側へ定義しましたが、実行してもうまく制御できません。

    ちなみに、

        <asp:TextBox ID="TextBox1" style="ime-mode:active;" Text="" runat="server"></asp:TextBox>

    とコントロール内で定義すると、エラー一覧には、『CSS検証'ime-mode'は、有効なCSSプロパティー名では

    ありません。』と出力されるものの、実行時は、正常に日本語入力に切り替わります。

    これは、こういうものなのでしょうか。スタイルシートエディタのプロパティにime-modeが無いだけの話なのでしょうか。

     

    それから、前から気になっていたのですが、page ロードイベント(クライアント側 スクリプト定義時)等を

    定義すると、エラー一覧に『検証(XHTML 1.0 Transactional)属性 'for'は要素'script'の有効な属性では、ありません。』

    と出力されますが、これも無視してOKなのでしょうか。別の記述方があるのでしょうか。

    (実際には、問題なくクライアントステップは、処理しますが。)

     

    どなたかご教授願います。

     

    よろしくお願いします。

     

     

     

     


     

     

    2007年9月4日 2:22

回答

  • niway さん、こんにちは。

     niway さんからの引用
    コントロール内で定義すると、エラー一覧には、『CSS検証'ime-mode'は、有効なCSSプロパティー名では

    ありません。』と出力されるものの、実行時は、正常に日本語入力に切り替わります。これは、こういうものなのでしょうか。



    エラーになるのは Ime-Mode は、IE でしか動作しないからです。

    マルチ ブラウザ対応という観点からすると推奨されません。

    またユーザビリティ的な指針でいくと、自分で 「IME 切り替えをする人」 が使いにくいと感じることです。
    某ネット銀行では自分の名前を入力するフィールドで、勝手に IME モードが変更されたりするわけですが、

    私なんかはクセで [半角 / 全角] キーを押下してしまうので使いにくかったです。

    2007年9月4日 3:52

すべての返信

  • niway さん、こんにちは。

     niway さんからの引用
    コントロール内で定義すると、エラー一覧には、『CSS検証'ime-mode'は、有効なCSSプロパティー名では

    ありません。』と出力されるものの、実行時は、正常に日本語入力に切り替わります。これは、こういうものなのでしょうか。



    エラーになるのは Ime-Mode は、IE でしか動作しないからです。

    マルチ ブラウザ対応という観点からすると推奨されません。

    またユーザビリティ的な指針でいくと、自分で 「IME 切り替えをする人」 が使いにくいと感じることです。
    某ネット銀行では自分の名前を入力するフィールドで、勝手に IME モードが変更されたりするわけですが、

    私なんかはクセで [半角 / 全角] キーを押下してしまうので使いにくかったです。

    2007年9月4日 3:52
  • ご返信ありがとうございます。

     

    下名もじゃんめねっとさんと同感です。

    入力データを検証時に、全角や半角のチェックを実施するわけですから、

    わざわざ、日本語入力をシステムで制御するのは、今どきでは、ないですね。

     

    今後も、アドバイスよろしくお願い致します。

     

    2007年9月4日 6:30
  • ご参考まで

     

    いろいろな意見があるようですが、業務要件で必要というケースもありますので私の場合は下記のような形でIMEは制御しておりますよ。

     

    CSSにて

    input.ime-mode_on   {IME-MODE: inactive;}
    input.ime-mode_on_j {IME-MODE: active;}
    input.ime-mode_off  {IME-MODE: disabled;}

     

    とか記述しておき、

     

    ASPソース内にて、

     

    <asp:TextBox ID="TextBox1" CssClass="ime-mode_on" Text="" runat="server"></asp:TextBox>

     

    としております。

     

    これでIMEの制御は出来ますよ。(IEのみですけど)

     

    ご確認願います。

    2007年9月12日 0:28
  •  niway さんからの引用

    定義すると、エラー一覧に『検証(XHTML 1.0 Transactional)属性 'for'は要素'script'の有効な属性では、ありません。』

    と出力されますが、これも無視してOKなのでしょうか。別の記述方があるのでしょうか。


    以下が参考になると思います。

     

    DOCTYPEタグには何が書いてあるのか
    http://seeds.whitesnow.jp/blog/archives/2004/12/xhtml_10_transitional.html

     

    方法 : ASP.NET Web サイトで XHTML レンダリングを構成する
    http://msdn2.microsoft.com/ja-jp/library/ms178159(VS.80).aspx

     

     niway さんからの引用

    入力データを検証時に、全角や半角のチェックを実施するわけですから、

    わざわざ、日本語入力をシステムで制御するのは、今どきでは、ないですね。


    入力時における利便性が求められることがあります。例えばログイン時に英数を入力する場合、何も考えなくても英数になっている方が良いという意見は理解できます。
    なんでもかんでも日本語入力を制御するのはどうかとは思いますが、使いどころによっては有効なケースは確かに存在すると思います。その場合、私もmarumusisanのように制御しています。

    2007年9月12日 3:06
    モデレータ