* フォーム制御子系 value 属性 (HTML, XHTML 1)
[1] [[HTML]] の [CODE(HTMLe)[[[input]]]] 要素や
[CODE(HTMLe)[[[button]]]] 要素や [CODE(HTMLe)[[[option]]]] 要素の
[DFN[[CODE(HTMLa)[value]] 属性]]は、その[[制御子]]の[[初期値]]を指定します。
[4] 仕様書:
- [[HTML 4]]
-- [CODE(HTMLe)[input]] 要素 [CODE(HTMLa)[value]] 属性
-- [CODE(HTMLe)[button]] 要素 [CODE(HTMLa)[value]] 属性
-- [CODE(HTMLe)[option]] 要素 [CODE(HTMLa)[value]] 属性
-- [CITE[HTML 4 Changes]]
- [[Web Forms 2.0]]
-- [CSECTION@en[2.3. Changes to existing controls]]
-- [CSECTION@en[2.18. Handling unexpected elements and values]]
** 属性値
[8] この属性の値は [CODE(SGML)[[[CDATA]]]] です。
大文字・小文字は区別されます。
[43] '''空白'''
[[属性値]]中の[[空白]]は、除去[['''してはなりません''']]。
[SRC@en[WF2 2.3]]
;; [[XML]] 等の規則による[[空白]]の[[正規化]]は、
必要ならば行われます。ここで禁止されているのは、
それ以上の処理です。
[26] この属性は、 [[DTD]] 的には [CODE(SGML)[#[[IMPLIED]]]] です。
[CODE(HTMLe)[input]] 要素の場合、
[CODE(HTMLa)[[[type]]]] 属性が [CODE(HTML)[[[radio]]]] または
[CODE(HTML)[[[checkbox]]]] の時''以外''は、
この属性は省略できます。 [SRC[HTML 4 17.4]]
[WEAK[(HTML 4.0 では誤って [CODE(HTML)[checkbox]] でも省略できるようなことが書いてありました [SRC[HTML 4.01 A.1.1.12]]。)]]
[CODE(HTMLe)[button]] 要素の場合も省略できます。
[SRC[HTML 4 17.5]]
[CODE(HTMLe)[option]] 要素の場合、省略すると要素の[[内容]]が初期値として使われます。
[42]
[[チェック箱制御子]] ([CODE(HTML)@en[[[checkbox]]]])
と[[ラジオ・ボタン制御子]] ([CODE(HTML)@en[[[radio]]]])
(>>41 を参照。) を''除き''、[[フォーム制御子]]の
[CODE(HTMLa)@en[[[value]]]] [[属性]]の[[既定値]]は[[空文字列]]です。
[SRC@en[WF2 2.3]]
[35]
HTML 4 DTD の[[注釈]] (参考) には
[Q[Specify for radio buttons and checkboxes]]
(ラジオ・ボタンとチェック箱に指定)
と書かれています。が、他の説明は小文字から始まるのにここだけ大文字から始まっているので、[[命令形]]で[Q[指定しなければなりません]]という意味かもしれません。
[50] '''誤り処理 ([CODE(DOM)@en[typeMismatch]])'''
[CODE(HTMLa)@en[[[value]]]] [[内容属性]]が
[CODE(HTMLa)@en[[[type]]]] に照らして[[非妥当]]な場合、
[[利用者エージェント]]は無視[['''しなければなりません''']]。
[CODE(DOMa)@en[[[defaultValue]]]]
はその値が使われますが、[[制御子]]には使われません
([[値が選択されていない]]状態となります)。
[SRC@en[WF2 2.18]]
[51] '''誤り処理 (制約違反)'''
[CODE(HTMLa)@en[[[value]]]] [[内容属性]]が
[CODE(HTMLa)@en[[[min]]]、[CODE(HTMLa)@en[[[max]]]]、]]
[CODE(HTMLa)@en[[[step]]]]、[CODE(HTMLa)@en[[[maxlength]]]]
等に照らして[[非妥当]]な場合
([[原始文書]]でそうである場合や [[DOM]]
操作でそうなった場合など)、
[[利用者エージェント]]は[[制御子]]にその値を設定[['''しなければなりません''']]。
それができない場合には、最も近い値と[['''しなければなりません''']]。
[SRC@en[WF2 2.18]]
;; 各[[属性]]に照らして適当な値に変更されるまで、
その[[フォーム]]は[[提出]]できません。
[53]
testtest
([[TEST]] [WEAK[2007-03-12 10:01:45 +00:00]])
[[#comment]]
** 押しボタン制御子 (HTML input 要素型)
[28] 押しボタン制御子 ([CODE(HTML)[type]] が [CODE(HTML)[[[button]]]])
では、 [[UA]] は [CODE(HTMLa)[value]] 属性値をボタンの札として使うべきです。
[SRC[HTML 4 17.4.1]] 詳しくは [CODE(HTML)[[[button]]]]
制御子の説明をご覧ください。
[[#comment]]
** ファイル選択制御子 (HTML input 要素型)
[27] ファイル選択制御子 ([CODE(HTMLa)[type]] が [CODE(HTML)[[[file]]]])
では、 [[UA]] は、 [CODE(HTMLa)[value]]
属性値をファイル名の初期値として使っても構いません。
[SRC[HTML 4 17.4.1]] 詳しくは [CODE(HTML)[[[file]]]]
制御子の説明をご覧ください。
[[#comment]]
** 画像提出ボタン制御子 (HTML input 要素型)
[33] HTML 4 では [[[CODE(HTMLe)[input]]//[CODE(HTML)[image]]]] では
[CODE(HTMLa)[value]] 属性は使われていませんが、
1996年の W3C [[NOTE]] >>32 は、 [CODE(HTMLa)[[[alt]]]]
属性と同じ役割で使用することを推奨していました。
([[代替文]]として使われるだけで、他のボタン制御子とは異なり、
[[初期値]]・[[現在値]]として使われるものではないことに注意してください。)
[34] 実際にそれにしたがって使われたことがあったかどうかは、現在のところ不明です。
[32] [CITE[Imagemapped Images and Image-Incapable User Agents]],
, 発表当時の URI は
。 [Q[Status of this document]]
によれば現在の W3C [[WD]] のような位置付けだったらしいのですが、 2004年現在、
によれば [[Working Group Note]] に分類されています。
同時期の他の HTML 系 WD とは異なり、直接 HTML 4 仕様書に取込まれてはいないようです。
[[#comment]]
** チェック箱制御子 ([CODE(HTML)@en[checkbox]])、ラジオ・ボタン制御子 ([CODE(HTML)@en[radio]])
[41] '''既定値'''
[[チェック箱制御子]] ([CODE(HTML)@en[[[checkbox]]]])、
[[ラジオ・ボタン制御子]] ([CODE(HTML)@en[[[radio]]]]) の場合の
[CODE(HTMLa)@en[[[value]]]] [[属性]]の[[既定値]]は、
[CODE(HTML)@en[[[on]]]] です。
[SRC@en[WF2 2.3]]
;; 従いまして、 [CODE(HTMLa)@en[[[value]]]]
[[内容属性]]が与えられていない時の
[CODE(DOMa)@en[[[value]]]] [[DOM属性]]の値は
[CODE(HTML)@en[[[on]]]] です。
[[フォーム提出]]時の値も [CODE(HTML)@en[[[on]]]]
です。
** 選択 ([CODE(HTMLe)@en[select]] 要素、[CODE(HTMLe)@en[option]] 要素)
[57] [CODE(DOMi)@en[[[HTMLSelectElement]]]] の [CODE(DOMa)@en[[[value]]]]、
[CODE(DOMi)@en[[[HTMLOptionElement]]]] の [CODE(DOMa)@en[[[value]]]]
のいずれも、 [[WinIE7]] では選択された [CODE(HTMLe)@en[[[option]]]]
[[要素]]または当該 [CODE(HTMLe)@en[[[option]]]] [[要素]]で明示的に
[CODE(HTMLa)@en[[[value]]]] [[内容属性]]が指定されていない限り、[[空文字列]]が返されます。
** 出力 ([CODE(HTMLe)@en[output]])
[44] [CODE(HTMLe)@en[[[output]]]] [[要素]]に対応する
[[DOM界面]] [CODE(DOMi)@en[[[HTMLOutputElement]]]]
の [DFN[[CODE(DOMa)@en[[[value]]]] [[DOM属性]]]]は、
[CODE(HTMLe)@en[[[output]]]] [[要素]]の[[現在値]]です。
;; [CODE(HTMLe)@en[[[output]]]] の[[現在値]]は、
[[内容]]とされています。 [SRC@en[WF2 2.13]]
[48]
:状態:[[WHATWG]] [[WD]]
:[[DOM界面]]:[CODE(DOMi)@en[[[HTMLOutputElement]]]]
:[[属性名]]:[CODE(DOMa)@en[[[value]]]]
([Q@en[value]] ([Q[値]]) より)
:[[データ型]]:[CODE(DOM)@en[[[DOMString]]]]
:[[読取専用]]:[[偽]]
:[[例外]]:[CODE(DOMa)@en[[[textContent]]]] と同じ
[45]
仕様書:
- [[Web Forms 2.0]]
-- [CSECTION@en[2.13. The [CODE(HTMLe)@en[[[output]]]] element]]
-- [CSECTION@en[2.18. Handling unexpected elements and values]]
[46] '''読み取り'''
[CODE(DOMa)@en[[[textContent]]]] と同じです。
[SRC@en[WF2 2.13]]
[47] '''書き込み'''
[[利用者エージェント]]の動作は
[CODE(DOMa)@en[[[textContent]]]]
と同じと[['''しなければなりません''']]。
[SRC@en[WF2 2.13, 2.18]]
[49] '''[CODE(DOMe)@en[change]] 事象'''
[CODE(DOMa)@en[[[value]]]] が直接的または間接的に
[[DOM]] [[木]]を介して変更された時には、
[CODE(HTMLe)@en[[[output]]]] [[要素]]に対して
[CODE(DOMe)@en[[[change]]]] [[事象]]を[[放火]][['''しなければなりません''']]。
[SRC@en[WF2 2.13]]
[[#comment]]
** 例
[10] メニュー制御子の例
[PRE(HTML)[
]PRE]
[[#comment]]
** メモ
[9] >>26 [CODE(HTMLe)[option]] 要素の [CODE(HTMLa)[value]] 属性は、
送信される値が[[仮名]]・[[漢字]]だと面倒なことになるから、
要素の内容は仮名・漢字の[[日本語文]]にしつつも、 [CODE(HTMLa)[value]] は[[ラテン文字]]で、
という使い方がよくされますね (>>10)。
[29]
[[w3m]] には [CODE(HTMLe)[input]] [CODE(HTMLa)[value]] 内の改行を無視してしまう不具合があるそうです。
[SRC[[w3m-dev 04110]]
[CODE(HTMLa)[type]] が [CODE(HTML)[text]]
なら仕方がないかもしれませんが、 [CODE(HTML)[hidden]] の時に落としてしまうのは問題ですね。
([[名無しさん]] [WEAK[2004-10-31 01:00:24 +00:00]])
[30]
>>29 そういえば HTML は [CODE(SGML)[[[CDATA]]]] 属性の値の処理についての規定があるのでした。だから w3m
は HTML 4 的には正しいのだそうな。
(でも HTML 4 の仕様が現実にあってない。)
([[名無しさん]] [sage])
[31]
[CITE[Bug 15204 - hidden inputs strip line feeds from value attribute]]
>>29-30 と同じ話題。
([[名無しさん]] [sage])
[39]
[CITE[inputタグのvalueについて]]
([[名無しさん]])
[40]
, , , ,[[Firefox]] 1.5 ,[[Opera]] 8.5 ,[[WinIE]] 6.0
,[CODE(HTML)@en[[[text]]]] ,[CODE(HTML)@en[
]] ,表示 ,改行前まで ,改行除去 ,改行除去
, , ,[CODE(DOMa)@en[[[value]]]] ,改行前まで ,改行除去 ,改行除去
, , ,[CODE(DOMa)@en[[[defaultValue]]]] ,[[CRLF]] ,改行除去 ,改行除去
, , ,[CODE(DOMm)@en[[[getAttribute]] ('[[value]]')]] ,[[CRLF]] ,改行除去 ,改行除去
, , ,[[提出]] ,改行前まで ,改行除去 ,改行除去
,[CODE(HTML)@en[[[text]]]] ,[[CRLF]] ,表示 ,改行前まで ,改行除去 ,改行除去
, , ,[CODE(DOMa)@en[[[value]]]] ,改行前まで ,改行除去 ,改行除去
, , ,[CODE(DOMa)@en[[[defaultValue]]]] ,[[LF]] ,改行除去 ,改行除去
, , ,[CODE(DOMm)@en[[[getAttribute]] ('[[value]]')]] ,[[LF]] ,改行除去 ,改行除去
, , ,[[提出]] ,改行前まで ,改行除去 ,改行除去
,[CODE(HTML)@en[[[hidden]]]] ,[CODE(HTML)@en[
]] ,[[CRLF]] ,[[CRLF]] ,[[CR]]
, , ,[CODE(DOMa)@en[[[defaultValue]]]] ,[[CRLF]] ,[[CRLF]] ,[[CR]]
, , ,[CODE(DOMm)@en[[[getAttribute]] ('[[value]]')]] ,[[CRLF]] ,[[CRLF]] ,[[CRLF]]
, , ,[[提出]] ,[[CRLF]] ,[[CRLF]] ,[[CRLF]]
,[CODE(HTML)@en[[[hidden]]]] ,[[CRLF]] ,[CODE(DOMa)@en[[[value]]]] ,[[LF]] ,[[LF]] ,[[CRLF]]
, , ,[CODE(DOMa)@en[[[defaultValue]]]] ,[[LF]] ,[[LF]] ,[[CR]]
, , ,[CODE(DOMm)@en[[[getAttribute]] ('[[value]]')]] ,[[LF]] ,[[LF]] ,[[CRLF]]
, , ,[[提出]] ,[[CRLF]] ,[[LF]] ,[[CRLF]]
([[名無しさん]] [WEAK[2006-05-27 09:05:02 +00:00]])
[56] [CITE[Re: introduction, plus some form input ideas]] ([[Ian Hickson ]] 著, [TIME[2008-11-29 20:45:28 +09:00]] 版)
[58] [CITE@en-GB-x-Hixie[Web Forms 2.0]]
([TIME[2009-01-05 20:07:15 +09:00]] 版)
[59] [CITE@en-GB-x-Hixie[Web Forms 2.0]]
([TIME[2009-01-05 20:07:15 +09:00]] 版)
[60] [CITE@en-GB-x-Hixie[Web Forms 2.0]]
([TIME[2009-01-05 20:07:15 +09:00]] 版)
[61] [CITE@en[(X)HTML5 Tracking]]
([TIME[2010-01-05 15:51:28 +09:00]] 版)
[62] [CITE[IRC logs: freenode / #whatwg / 20100828]]
( ([TIME[2010-09-11 17:53:15 +09:00]] 版))
[63] [CITE['''['''whatwg''']''' Treatment of negative values for li]]
([TIME[2010-11-16 12:01:42 +09:00]] 版)
[64] [CITE@en[Web Applications 1.0 r5902 Define that