* フォーム制御子名系 name 属性
[20] [[HTML]] の[[フォーム]]の[[制御子]]の名前は、
[DFN[[CODE(HTMLa)[name]] 属性]]で指定します。
該当する要素型:
[CODE(HTMLe)[[[input]]]] 要素型 (HTML, XHTML 1),
[CODE(HTMLe)[[[button]]]] 要素型 (HTML, XHTML 1),
[CODE(HTMLe)[[[select]]]] 要素型 (HTML, XHTML 1),
[CODE(HTMLe)[[[textarea]]]] 要素型 (HTML, XHTML 1),
[CODE(HTMLe)[[[object]]]] 要素型 (HTML, XHTML 1)
[21] 仕様書:
- [[HTML 4]] ([[Web Forms 1.0]])
-- [CODE(HTMLe)[input]] 要素 [CODE(HTMLa)[name]] 属性
-- [CODE(HTMLe)[button]] 要素 [CODE(HTMLa)[name]] 属性
-- [CODE(HTMLe)[select]] 要素 [CODE(HTMLa)[name]] 属性
-- [CODE(HTMLe)[textarea]] 要素 [CODE(HTMLa)[name]] 属性
-- [CODE(HTMLe)[object]] 要素の定義では
[CODE(HTMLe)[input]] 要素の [CODE(HTMLa)[name]]
属性が参照されています。
- [[Web Forms 2.0]]
-- [CSECTION@en[2.5. Extensions to existing attributes]]
* Content-Disposition: 欄 name 引数 (MIME/HTTP)
[22] [[HTML]] の [CODE(HTMLe)[[[form]]]]
要素からデータが送信された時に control の
[CODE(HTMLa)[[[name]]]] 属性の値が指定されるのが
[CODE(MIME)[[[Content-Disposition]]]] 欄の
[DFN[[CODE(MIME)[name]] 引数]]です。
[CODE(MIME)[[[[form-data]]]] 配置型と共に使います。
[23] [[HTML 4]] 仕様書によると、 [CODE(MIME)[name]] 属性値に
[CODE(charset)[[[US-ASCII]]]] 以外の文字が使われる場合、
[[RFC 2045]] の方法で符号化しないといけないそうです。
RFC 2045 探しても方法なんてのってないとおもうんですが・・・。
どうするんでしょうか。
()
まさか、 [[RFC 2047]] の方法 = [CODE(ABNF)[[[encoded-word]]]]
の間違いでしょうか。そうすると MIME
の規定と噛み合わなくなりますが・・・。
[24] 現実の実装は、多くが、[[実体本体]]と同じ [[charset]]
で生で符号化するようです。
一部実装では [CODE(HTML)[[[_charset_]]]] hack が使えます。
[28] 詳しくは [CODE(MIME)@en[[[multipart/form-data]]]] の項を参照してください。
[[#comment]]
* 制御子名
[1] [[HTML]] の[[フォーム]]では、[[制御子]]は[DFN[[[名前]]]]を持つことができます。
[17]
:状態:[[W3C]] [[勧告]]、[[WHATWG]] [[WD]]
:[[要素型名]]:
[CODE(HTMLe)@en[[QN[[[input]]] [http://www.w3.org/1999/xhtml]]]],
[CODE(HTMLe)@en[[QN[[[button]]] [http://www.w3.org/1999/xhtml]]]],
[CODE(HTMLe)@en[[QN[[[select]]] [http://www.w3.org/1999/xhtml]]]],
[CODE(HTMLe)@en[[QN[[[textarea]]] [http://www.w3.org/1999/xhtml]]]],
[CODE(HTMLe)@en[[QN[[[object]]] [http://www.w3.org/1999/xhtml]]]]
:[[属性名]]:[CODE(HTMLa)@en[[[name]]]]
([Q@en[name]] ([Q[名前]]) より)
:[[属性値]]:自由 (>>3)
:[[既定値]]:名前なし (>>11)
[2] 仕様書:
- [[HTML 4]]
-- 17.2 Controls
-- [CODE(HTMLe)[input]] 要素 [CODE(HTMLa)[name]] 属性
-- [CODE(HTMLe)[button]] 要素 [CODE(HTMLa)[name]] 属性
-- [CODE(HTMLe)[select]] 要素 [CODE(HTMLa)[name]] 属性
-- [CODE(HTMLe)[textarea]] 要素 [CODE(HTMLa)[name]] 属性
-- [CITE[17.13.2 Successful controls]]
- [[RFC 3106]]
- [[Web Forms 2.0]]
-- [CSECTION@en[2.5. Extensions to existing attributes]]
** 制御子名の指定
[10] 制御子名は、その制御子を定義する [CODE(HTMLa)[[[name]]]]
属性で指定します。メニュー制御子では、 [CODE(HTMLe)[[[select]]]]
要素の [CODE(HTMLa)[name]] 属性で指定します [SRC[HTML 4 17.13.2]]。
[11] 一般に [CODE(HTMLa)[name]] 属性は省略可能です。
制御子名を持たない制御子は、[[成功]]の対象になりません。
[SRC[HTML 4 17.13.2]]。
[14]
HTML 4 DTD の[[注釈]] (参考) には、
[Q[attribute name required for all but submit and reset]]
([CODE(HTML)[submit]] と [CODE(HTML)[[reset]]
以外では [CODE(HTMLa)[name]] 属性は必須)
と書かれています。
[15]
>>14 同じく、 [Q[submit as part of form]]
とも説明があります。
[[#comment]]
** 制御子名に使える文字
[3] HTML 4 仕様書では制御子名に使える文字は特に規定されていません。
HTML 的には何でもありということでしょうか。
但し、大文字と小文字は区別されません [SRC[HTML 4 17.4, 17.5, 17.6]]。
[[#comment]]
** 制御子名の名前空間
[4] 制御子名の適用範囲は、その制御子が属する [CODE(HTMLe)[[[form]]]]
要素内です [SRC[HTML 4 17.2]]。
普通制御子名は制御子ごとに異なる名前としますが、 [CODE(HTML)[[[checkbox]]]]
制御子などのように複数個の制御子に同じ名前を使えるものもあります。
[16]
@@ [CODE(HTML)@en[[[checkbox]]]], [CODE(HTML)@en[[[radio]]]]以外での重複は?
異なる種類間での重複は?
[[#comment]]
** 特殊な制御子名
[5] 正式な HTML 仕様にはありませんが、各種の実装では制御子名に特別な意味を持たせていることがあります。
[6] [CODE(XPath)[[CODE(HTML)[[[input]]]][@[CODE(HTML)[[[type]]]]='[CODE(HTML)[[[submit]]]]'] ]]
な要素の [CODE(HTMLa)[name]] 属性の値を [CODE(HTML)[navi_pos]] とすると、
[[iモード]]端末では位置情報を form の他の内容とともに送信します。
''DoCoMo Net - 製品・サービス - i-mode''
[7]
[SAMP(URI)[http://www.example.com/gps/serch.cgi?pos=N35.39.41.61E139.44.49.42&geo=wgs84&X-acc=3¶m=a]]
([CODE(HTML)[[CODE(HTMLa)[[[method]]]]=[[get]]]] の場合) のようになるそうです。
この挙動は [[HTML 4]] などの form submit
処理手順に反する重大な非互換変更です。
[9] [[WinIE]], [[Mozilla]], [[Opera]] をはじめとする多くの近代的 UA
は、 [CODE(HTML)[[[_charset_]]]] hack を実装しています。
これは、制御子名を [CODE(HTML)[_charset_]] として [CODE(HTMLa)[[[value]]]]
属性を省略した隠し制御子 ([CODE(HTML)[[[hidden]]]]) を作成すると、
フォーム提出時に使用した [[charset]] 名を報告させられるというものです。
[17]
[[RFC 3106]] は、
[CODE(HTML)@en[[[Ecom_]]]] で始まる幾つかの[[名前]]を[[予約]]しています。
[[著者]]は、 [CODE(HTML)@en[[[Ecom_]]]]
で始まる[[名前]]を [[RFC 3106]]
と矛盾した方法で使用[['''してはなりません''']]。
[SRC@en[WF2 2.5]]
[[#comment]]
* メモ
[12]
[CODE(HTMLe)[[[object]]]] 要素の定義では
[CODE(HTMLe)[[[input]]]] 要素の
[CODE(HTMLa)[[[name]]]] 属性の定義が参照されています
[SRC[HTML 4]]。
([[名無しさん]] [sage])
[13]
HTML 4 DTD の [CODE(HTMLe)[[[object]]]]
要素の宣言の[[注釈]] (参考) では
[Q[submit as part of form]]
と書かれています。
([[名無しさん]] [sage])
[18]
[[XHTML 1.0]] では[[素片識別子]]や[[閲覧文脈名]]として用いられる
[CODE(HTMLa)@en[[[name]]]] [[属性]]が[[非推奨]]とされているのですが、
[CODE(HTMLe)@en[[[object]]]] [[要素]]の [CODE(HTMLa)@en[[[name]]]]
[[属性]]はそれに含まれて''いません''。
;;
([[名無しさん]])
[19]
[[HTML 4.0]]、[[HTML 4.01]]、[[XHTML 1.0]] のいずれの[[厳密DTD]]、
[[移行用DTD]]、[[フレーム集合DTD]]のいずれでも、
[CODE(HTMLe)@en[[[object]]]] [[要素]]の [CODE(HTMLa)@en[[[name]]]] [[属性]]は定義されています。
また、 [[XHTML m12n]] の[[物体]][[モジュール]]でも定義されています。
いずれも[[非推奨]]では''ありません''。
([[名無しさん]])
* [CODE(XMLe)@en[name]] 要素 (RSS2)
[25] [[RSS 2.0]] の [DFN[[CODE(XMLe)@en[[[name]]]] [[要素]]]]は、
[[テキスト入力欄]]の[[テキスト]]の[[名前]]を表します。
:[[要素名]]:[CODE(XMLe)@en[[[name]]]] ([[name]] ([[名前]]) より)
:文脈:[CODE(XMLe)@en[[[textInput]]]] [[要素]]の[[子要素]]として
:[[内容モデル]]:[CODE(ABNF)[[[ALPHA]] *([[ALPHA]] / [[DIGIT]] / ":" / "-" / "." / "_")]]
:[[属性]]:
** 仕様書
-[29] [CITE@en[RSS 2.0 Specification (version 2.0.10)]] ([TIME[2008-11-21 18:10:17 +09:00]] 版)
-[30] [CITE@en[RSS Best Practices Profile]] ([TIME[2008-11-21 15:11:45 +09:00]] 版)
** 内容
[26] [[RSS Best Practices]] によれば、値は
[CODE(ABNF)[[[ALPHA]] *([[ALPHA]] / [[DIGIT]] / ":" / "-" / "." / "_")]]
でなければ[['''なりません''']]。
** 文脈
[27] [CODE(XMLe)@en[[[name]]]] [[要素]]は [CODE(XMLe)@en[[[textInput]]]]
[[要素]]の[[子要素]]として用いることができます。
この[[要素]]は必須です [SRC@en[[[RSS 2.0]]]]。
* [CODE(XMLe)@en[name]] 要素 (RSS1)
[31] [[RSS 1.0]] の
[DFN[[CODE(XMLe)@en[[[name]]]] [[要素]]]]は、入力欄の(変数)名を表します [SRC[>>32]]。
** 仕様書
- [32] [CITE[RDF Site Summary (RSS) 1.0]] ([TIME[2008-06-10 05:47:42 +09:00]] 版)
** 文脈
[33] [CODE(XMLe)@en[[[textinput]]]] [[要素]]の[[子要素]]としてちょうど1個必要です [SRC[>>32]]。
** 内容
[34] [[内容]]は [CODE(XML)@en[[[PCDATA]]]] です [SRC[>>32]]。
[35] 500文字以下とすることが[RUBYB[提案]@en[suggested]]されています [SRC[>>32]]。