テキスト入力欄や送信ボタン等、入力フォームを構成する部品を作成します。
type属性の値により、一行テキストフィールド・チェックボックス・ラジオボタン・送信ボタン・リセットボタン等の異なる部品となります。
<form>〜</form>要素内に記述します。空要素なので「/>」で閉じます。
<input 各属性 />
なし
|
|
<form action="some.cgi" method="post"> <input type="hidden" name="タイトル" value="アンケート" /> <p>お名前(必須): <input type="text" size="6" name="お名前" format="MM*M" /> </p> <p>メールアドレス: <input type="text" name="Mail" format="*m" /></p> <p>好きな季節:<br /> <input type="checkbox" name="好きな季節" value="春" title="春" />春<br /> <input type="checkbox" name="好きな季節" value="夏" title="夏" />夏<br /> <input type="checkbox" name="好きな季節" value="秋" title="秋" />秋<br /> <input type="checkbox" name="好きな季節" value="冬" title="冬" />冬 </p> <p>性別:<br /> <input type="radio" name="性別" value="男" checked="checked" /> 男<br /> <input type="radio" name="性別" value="女" /> 女 </p> <p align="center"> <input type="submit" value="送信" localsrc="inbox" title="送信"/> <input type="reset" value="クリア" localsrc="clear" title="クリア" /></p></form> |
|||||
この指定は、数字入力のみの指定ですが、C3003Pでは、「*」及び「#」の入力が可能でした。
Openwave
SDKでは、数字入力のみです。
実は、この指定は、WML2.0仕様で新しく追加されたものです。
数字入力の他、句読点・記号の入力を可能にするものですが、
という具合に、各端末により、サポート状態がマチマチです。ちょっと情報を先取りしすぎてしまいました。
現状では、このformat指定は使用しない方がよいかもしれません。
これは、HDML仕様で入力フィールド内のデフォルト文字列を指定するものですが、WML1.3仕様では、リファレンスに記載されていません。WML2.0仕様にはあります。
Openwave
SDKユニバーサル・エディションでも動作するので、WAP2.0実機でもOKと思っていたのですが、C3003Pにおいて、不思議な動作をすることを確認しましたので、ご報告します。
<form action="some.cgi" method="post"> カードの有効期限<br /> →月(2桁)/西暦(4桁)<br /> <input type="text" name="Birth" format="NN\/\2\0NN" /> <input type="submit" value=" 送信 " /> <input type="reset" value="クリア" /> </form>
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
結果は同じですが、上記C3003Pのような状態だとユーザーは混乱します。
入力フォーマット指定で、デフォルト文字列を指定する場合は、value属性により行ったほうが無難かもしれません。
ただ、上記の例のように、「途中で」文字を挿入(出現)させるようなことは、value属性ではできませんので、URLを入力させる時のように、最初が「http://」であるような場合に限定されてしまいます。
HTMLファイル中に、iモードの入力文字種指定であるistyle属性があった場合、HDML機でアクセスすると、ゲートウェイでのHTML変換機能の働きにより、それを、format属性に変換してくれます。
iモードとの入力フォーム共用などの際に、便利な機能ですが、C3003Pで確認したところ、format属性を直接指定した時とは、その動作が少々異なりましたので記述しておきます。
WAP2.0機では、搭載されているブラウザ自体がistyle属性を認識するようになっているための差違ではないかと思われます。
変換後のモードは、OEMメーカーにより違う可能性があることを、お含みおき下さい。
各WAP2.0機における動作報告をいただけると、大変ありがたく思います。
| istyle指定 | 変換後(文字種指定の定義) | |
|---|---|---|
| istyle="1"(全角かな/全角文字) | format="*M"(全ての文字(最初は全角漢字)) | |
| istyle="2"(半角カナ/半角文字) | format="*M"(全ての文字(最初は全角漢字)) | |
| istyle="3"(英字/半角文字(小文字)) | format="*m"(全ての文字(最初は英小文字)) | |
| istyle="4"(数字/半角文字(数字)) | format="*N"(数字のみ(句読点・記号不可)) |
| istyle指定 | 変換後 | |
|---|---|---|
| istyle="1"(全角かな/全角文字) | (全ての文字(最初は全角漢字)) | |
| istyle="2"(半角カナ/半角文字) | (全ての文字(最初は半角カナ)) | |
| istyle="3"(英字/半角文字(小文字)) | (全ての文字(最初は英大文字)) | |
| istyle="4"(数字/半角文字(数字)) | (全ての文字(最初は数字)) |
このC3003Pにおける動作が、他のWAP2.0対応機でも同様であるとすると、ちょっと面白いですね。
format指定では、デフォルト入力を「半角カナ」にすることはできませんので、「istyle="2"」と指定しておけば、実現できることになります。
反面、「istyle="4"」を「format="*N"」の代わりに使用するには注意が必要です。
デフォルトでは数字入力ですが、ユーザーによって入力文字種の変更が可能だからです。
※パスワード入力フィールドなどでは、数字しか入力できない「format="*N"」よりも、入力文字種を変更できる「istyle="4"」の方が使いやすいですね。
(2002/5/9追記)C5001Tでは、「istyle="2"」の働きが、C3003Pとは違うようです。
以下にC5001Tでの動作をまとめました。
| istyle指定 | 変換後 | |
|---|---|---|
| istyle="1"(全角かな/全角文字) | (全ての文字(最初は全角漢字)) | |
| istyle="2"(半角カナ/半角文字) | (全ての文字(最初は全角漢字)) | |
| istyle="3"(英字/半角文字(小文字)) | (全ての文字(最初は英大文字)) | |
| istyle="4"(数字/半角文字(数字)) | (全ての文字(最初は数字)) |
(2007/02/03追記)A5301T,W22SAでの動作は以下の通りです。
| istyle指定 | 変換後 | |
|---|---|---|
| istyle="1"(全角かな/全角文字) | (全ての文字(最初は全角漢字)) | |
| istyle="2"(半角カナ/半角文字) | (全ての文字(最初は全角漢字)) | |
| istyle="3"(英字/半角文字(小文字)) | (全ての文字(最初は英小文字)) | |
| istyle="4"(数字/半角文字(数字)) | (全ての文字(最初は数字)) |
| istyle指定 | 変換後 | |
|---|---|---|
| istyle="1"(全角かな/全角文字) | (全ての文字(最初は全角漢字)) | |
| istyle="2"(半角カナ/半角文字) | (全ての文字(最初は半角カナ)) | |
| istyle="3"(英字/半角文字(小文字)) | (全ての文字(最初は英小文字)) | |
| istyle="4"(数字/半角文字(数字)) | (全ての文字(最初は数字)) |
おそらく以下のような推測が成り立つかと思います。
■ ここで疑問 ■
ひとつの入力フィールドで、format属性とistyle属性両方に、それぞれ違う値を指定したらどうなるでしょう?
→SDK及びC3003Pでは、format属性が優先されました。