RFC 3106

コントロール名 (フォーム)

[51] フォームコントロールは、 名前を持つことができます。

[52] コントロール名は、name 内容属性により指定できます。

仕様書

制御子名

[37] 非ASCII文字を使わないようにすると multipart/form-data相互運用性の問題を回避できるかもしれません >>36非ASCII文字制御子名に使うのは避けるべきです >>40。 避けがたいときは、 UTF-8 を使うべきです >>40

[47]RFC 7578 は主張していますが、旧 RFC だけが現実離れした規定をしていたのであり、 実際の Webブラウザーの動作は一致しているのですから、意味のない推奨に見えます。 無視して構わないでしょう。

[38] 制御子名フォーム内で固有にするのも良いかもしれません >>36

[39] 何がどう有用なのかよくわかりませんが...

フォーム制御子名系 name 属性

[20] HTMLフォーム制御子の名前は、 name 属性で指定します。

該当する要素型: input 要素型 (HTML, XHTML 1), button 要素型 (HTML, XHTML 1), select 要素型 (HTML, XHTML 1), textarea 要素型 (HTML, XHTML 1), object 要素型 (HTML, XHTML 1)

[21] 仕様書:

Content-Disposition: 欄 name 引数 (MIME/HTTP)

[22] HTMLform 要素からデータが送信された時に control の name 属性の値が指定されるのが Content-Disposition 欄の name 引数です。 form-data 配置型と共に使います。

[28] 詳しくは multipart/form-data の項を参照してください。

構文

[45] 値は、引用文字列として指定します。任意の文字列が指定できます。

  1. 引用文字列

[46] 字句でも良いのかどうかは不明です。

[44] 主要ブラウザはどれも quoted-string を使いますが、 \" をきちんと quoted-pair にするのは Opera だけです。他のブラウザはそのまま放置します。 Opera も含めてどのブラウザも、 nameLF が含まれているとそのまま出力します。なので、 頭欄としては壊れてしまいます。 >>66

[48] 文字コードは、フォームの提出に使うものとできます >>40

[43] 主要ブラウザでは、通常の制御子本体に使われるのと同じ charset でそのまま符号化されるようです。表現できない文字十進数文字参照になるのも本体と同じです。 (HTTP提出する場合のみ調べています。) Firefox 3.0.4、Opera 9.61、Safari 3.2、WinIE 7

[24] 現実の実装は、多くが、実体本体と同じ charset で生で符号化するようです。 一部実装では _charset_ hack が使えます。

[23] HTML 4非ASCII文字が含まれる場合、 RFC 2045 の方法で符号化してよいとしていました HTML 4 17.13.4.2 http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4RFC 2045 にそのような方法の規定はなく、何を認めていたのか謎でした。
[42] RFC 2388RFC 2047 の方法で符号化するよう求めていました RFC 2388 3., 5.4RFC 2047 encoded-word を使うことを求めていたと推測されますが、 RFC 2047quoted-string での利用を禁止しており、 RFC 2388 がそれでも encoded-word を使うことを特に認めていたのかどうか、解釈は明確ではありませんでした。 RFC 2388 の改訂である RFC 7578 は、 RFC 2047 の方法は広くは採用されなかったようだ >>40 と述べており、 事実上これを撤回しています。

[41]HTML 4 17.13.4.2

Content-Disposition: form-data; name="mycontrol"

この例では、制御子名 mycontrol を表します。 この欄を含む本体部分の本体は、この名前の制御子の現在値 (またはファイル内容) になります。

制御子名

[1] HTMLフォームでは、制御子名前を持つことができます。

[17]

状態
W3C 勧告WHATWG WD
要素型名
input, button, select, textarea, object
属性名
name (name (名前) より)
属性値
自由 (>>3)
既定値
名前なし (>>11)

[2] 仕様書:

制御子名の指定

[10] 制御子名は、その制御子を定義する name 属性で指定します。メニュー制御子では、 select 要素の name 属性で指定します HTML 4 17.13.2

[11] 一般に name 属性は省略可能です。 制御子名を持たない制御子は、成功の対象になりません。 HTML 4 17.13.2

[14] HTML 4 DTD の注釈 (参考) には、 attribute name required for all but submit and reset (submit[reset 以外では name 属性は必須) と書かれています。

[15] >>14 同じく、 submit as part of form とも説明があります。

制御子名に使える文字

[3] HTML 4 仕様書では制御子名に使える文字は特に規定されていません。 HTML 的には何でもありということでしょうか。

但し、大文字と小文字は区別されません HTML 4 17.4, 17.5, 17.6

制御子名の名前空間

[4] 制御子名の適用範囲は、その制御子が属する form 要素内です HTML 4 17.2

普通制御子名は制御子ごとに異なる名前としますが、 checkbox 制御子などのように複数個の制御子に同じ名前を使えるものもあります。

[16]

checkbox, radio以外での重複は? 異なる種類間での重複は?

特殊な制御子名

[5] 正式な HTML 仕様にはありませんが、各種の実装では制御子名に特別な意味を持たせていることがあります。

[6] input[@type='submit'] な要素の name 属性の値を navi_pos とすると、 iモード端末では位置情報を form の他の内容とともに送信します。

DoCoMo Net - 製品・サービス - i-mode http://www.nttdocomo.co.jp/p_s/corporations/dlp/tag/index.html

[7] http://www.example.com/gps/serch.cgi?pos=N35.39.41.61E139.44.49.42&geo=wgs84&X-acc=3&param=a (method=get の場合) のようになるそうです。 この挙動は HTML 4 などの form submit 処理手順に反する重大な非互換変更です。

[9] WinIE, Mozilla, Opera をはじめとする多くの近代的 UA は、 _charset_ hack を実装しています。 これは、制御子名を _charset_ として value 属性を省略した隠し制御子 (hidden) を作成すると、 フォーム提出時に使用した charset 名を報告させられるというものです。

[17] RFC 3106 は、 Ecom_ で始まる幾つかの名前予約しています。 著者は、 Ecom_ で始まる名前RFC 3106 と矛盾した方法で使用してはなりませんWF2 2.5

メモ

[12] object 要素の定義では input 要素の name 属性の定義が参照されています HTML 4

(名無しさん [sage])

[13] HTML 4 DTD の object 要素の宣言の注釈 (参考) では submit as part of form と書かれています。

(名無しさん [sage])

[18] XHTML 1.0 では素片識別子閲覧文脈名として用いられる name 属性非推奨とされているのですが、 object 要素name 属性はそれに含まれていません

(名無しさん)

[19] HTML 4.0HTML 4.01XHTML 1.0 のいずれの厳密DTD移行用DTDフレーム集合DTDのいずれでも、 object 要素name 属性は定義されています。 また、 XHTML m12n物体モジュールでも定義されています。 いずれも非推奨ではありません

(名無しさん)

name 要素 (RSS2)

[25] RSS 2.0name 要素は、 テキスト入力欄テキスト名前を表します。

要素名
name (name (名前) より)
文脈
textInput 要素子要素として
内容モデル
ALPHA *(ALPHA / DIGIT / ":" / "-" / "." / "_")
属性

仕様書

内容

[26] RSS Best Practices によれば、値は ALPHA *(ALPHA / DIGIT / ":" / "-" / "." / "_") でなければなりません

文脈

[27] name 要素textInput 要素子要素として用いることができます。 この要素は必須です RSS 2.0

name 要素 (RSS1)

[31] RSS 1.0name 要素は、入力欄の(変数)名を表します >>32

仕様書

文脈

[33] textinput 要素子要素としてちょうど1個必要です >>32

内容

[34] 内容PCDATA です >>32

[35] 500文字以下とすることが提案 (suggested) されています >>32

歴史

[8] ECML

[49] Remove "compatibility caseless" matching (domenic著, ) https://github.com/whatwg/html/commit/6acdb2122298d2bb7bb839c0a61b4e1f9b0f9bc9

[50] Micropub () https://micropub.net/draft/#form-encoded-and-multipart-requests-p-1

For x-www-form-urlencoded and multipart/form-data requests, Micropub supports an extension of the standard URL encoding that includes explicit indicators of multi-valued properties. Specifically, this means in order to send multiple values for a given property, you must append square brackets [] to the property name.

[53] Add DOM clobbering note to the form controls section (GloverDonovan著, ) https://github.com/whatwg/html/commit/d661e874760bb1a4fc0634e6f01e5c02b8c8c1fe

[54] Add DOM clobbering note to form controls section by GloverDonovan · Pull Request #3484 · whatwg/html () https://github.com/whatwg/html/pull/3484

[55] Should “Naming form controls” section include a warning about names overriding form properties? · Issue #2720 · whatwg/html () https://github.com/whatwg/html/issues/2720