auとDoCoMoのはなし。
HTMLモードで入力文字の制限をつけるには
istyle=1 (全角かな)
istyle=2 (半角カナ)
istyle=3 (英字/半角文字)
istyle=4 (数字/半角文字)
でやるけど、xhtmlで同じ指定をするには、style指定が必要で、
DoCoMoの場合、
style="-wap-input-format:"*<ja:h>"" (全角かな)
style="-wap-input-format:"*<ja:hk>"" (半角カナ)
style="-wap-input-format:"*<ja:en>"" (英字/半角文字)
style="-wap-input-format:"*<ja:n>"" (数字/半角文字)
auの場合、
style="-wap-input-format:*M;"(全角かな)
style="-wap-input-format:*m;"(英字/半角文字)
style="-wap-input-format:*N;"(数字/半角文字)
※ クオーテーションとかダイナリ・ショウナリの記号はちゃんとエンティティ表記でね。
となる。
が、同じスタイル要素に違う値を割り当ててるのが問題で、ひとつのxhtmlファイルで両方に対応しようとすると、順番がキーになってくる。
試した限りでは、au指定→DoCoMo指定でないと、auの方でエラーになってうまく認識されない模様。
つまり、数字を入力させたいときは
istyle="4" format="*N" mode="numeric" style="-wap-input-format:*N;-wap-input-format:"*<ja:n>""
とする。
かなり冗長であるが、これで全パターンに対応できるはず。
ただ、順番云々っていうのは、確実ではないだろうし、DoCoMoの機種の中にも、先に無効な指定があったらstyleのパースを中断するようなものがあるかもしれない。そうなると、これでもダメで、結局、キャリアごとにCGI側でマジック指定を埋めこまないとダメ、っていう事になる。
とりあえず、急ぎの仕事の場合は、これで急場をしのいで、受け取り側でしっかり値のチェックを行うことで、重大なエラーは発生しないように対処することに。
いろいろ難しいね。
0 件のコメント:
コメントを投稿