|
@@ -20,6 +20,7 @@ |
|
|
</style> |
|
|
<link href=status.css rel=stylesheet> |
|
|
<script src=status.js></script> |
|
|
<script src=dfn.js></script> |
|
|
|
|
|
<body class=draft onload="initAnnotations()"> |
|
|
<div class=head> |
|
|
|
|
<p class=big-issue>... <dfn id=checked |
|
|
title=concept-input-checked>checked</dfn> |
|
|
|
|
|
<p class=big-issue>... image: <dfn id=selected |
|
|
title=concept-input-type-image-coordinate>selected coordinate</dfn> |
|
|
|
|
|
<p class=big-issue>... <dfn id=selected0 |
|
|
title=concept-input-type-file-selected>selected file</dfn> |
|
|
|
|
|
<h4 id=the-button><span class=secno>4.9.4 </span>The <dfn |
|
|
id=button><code>button</code></dfn> element</h4> |
|
|
|
|
|
|
|
|
|
|
<p class=big-issue>... |
|
|
|
|
|
<p class=big-issue>... <dfn id=selected1 |
|
|
title=concept-option-selected>selected</dfn> |
|
|
|
|
|
<p class=big-issue>... <dfn id=value7 |
|
|
title=concept-option-value>value</dfn> |
|
|
|
|
|
<p class=big-issue> <dfn id=option0 |
|
|
title=dom-option><code>Option()</code></dfn> <dfn id=option1 |
|
|
title=dom-option-n><code>Option(<var title="">name</var>)</code></dfn> |
|
|
|
|
<p class=big-issue>... <dfn id=disabled4 |
|
|
title=dom-fe-disabled>disabled</dfn> DOM attribute |
|
|
|
|
|
<p class=big-issue>... <dfn id=value8 title=concept-fe-value>value</dfn> |
|
|
|
|
|
<h4 id=constraint><span class=secno>4.9.14 </span>Constraint validation</h4> |
|
|
|
|
|
<p class=big-issue>... |
|
|
|
|
<p>Let the <var title="">form data set</var> be a list of name/value |
|
|
pairs, initially empty. |
|
|
|
|
|
<li> |
|
|
<p>For each element <var title="">field</var> in <var |
|
|
title="">controls</var>, in <a href="#tree-order">tree order</a>, run |
|
|
the following substeps:</p> |
|
|
<li id=constructing-form-data-set> |
|
|
<p><strong>Constructing the form data set</strong>. For each element <var |
|
|
title="">field</var> in <var title="">controls</var>, in <a |
|
|
href="#tree-order">tree order</a>, run the following substeps:</p> |
|
|
|
|
|
<ol> |
|
|
<li> |
|
|
|
|
<li>The <var title="">field</var> element has a <code><a |
|
|
href="#datalist">datalist</a></code> element ancestor. |
|
|
|
|
|
<li>The <var title="">field</var> element does not have a <code |
|
|
title=attr-fe-name><a href="#name9">name</a></code> attribute |
|
|
specified, or its <code title=attr-fe-name><a |
|
|
href="#name9">name</a></code> attribute's value is the empty string, |
|
|
and it is not an <code><a href="#input0">input</a></code> elements |
|
|
whose <code title=attr-input-type>type</code> attribute is in the |
|
|
<span title=attr-input-type-image-state>Image Button</span> state. |
|
|
|
|
|
<li>The <var title="">field</var> element is <a href="#disabled2" |
|
|
title=concept-fe-disabled>disabled</a>. |
|
|
|
|
|
|
|
control does not have any files selected. |
|
|
</ul> |
|
|
|
|
|
<li class=big-issue>... |
|
|
<p>Otherwise, process <var title="">field</var> as follows:</p> |
|
|
|
|
|
<li> |
|
|
<p>If the <var title="">field</var> element is an <code><a |
|
|
href="#input0">input</a></code> element whose <code |
|
|
title=attr-input-type>type</code> attribute is in the <span |
|
|
title=attr-input-type-image-state>Image Button</span> state, then run |
|
|
these further nested substeps:</p> |
|
|
|
|
|
<ol> |
|
|
<li> |
|
|
<p>If the <var title="">field</var> element has an <code |
|
|
title=attr-fe-name><a href="#name9">name</a></code> attribute |
|
|
specified and value is not the empty string, let <var |
|
|
title="">name</var> be that value followed by a single U+002E FULL |
|
|
STOP (.) character. Otherwise, let <var title="">name</var> be the |
|
|
empty string. |
|
|
|
|
|
<li> |
|
|
<p>Let <var title="">name<sub title="">x</sub></var> be the string |
|
|
consisting of the concatenation of <var title="">name</var> and a |
|
|
single U+0078 LATIN SMALL LETTER X (x) character. |
|
|
|
|
|
<li> |
|
|
<p>Let <var title="">name<sub title="">y</sub></var> be the string |
|
|
consisting of the concatenation of <var title="">name</var> and a |
|
|
single U+0079 LATIN SMALL LETTER Y (y) character. |
|
|
|
|
|
<li> |
|
|
<p>The <var title="">field</var> element is <var |
|
|
title="">submitter</var>, and before this algorithm was invoked the |
|
|
user <a href="#selected" |
|
|
title=concept-input-type-image-coordinate>indicated a |
|
|
coordinate</a>. Let <var title="">x</var> be the x-component of the |
|
|
coordindate selected by the user, and let <var title="">y</var> be |
|
|
the y-component of the coordinate selected by the user. |
|
|
|
|
|
<li> |
|
|
<p>Append an entry in the <var title="">form data set</var> with the |
|
|
name <var title="">name<sub title="">x</sub></var> and the value |
|
|
<var title="">x</var>. |
|
|
|
|
|
<li> |
|
|
<p>Append an entry in the <var title="">form data set</var> with the |
|
|
name <var title="">name<sub title="">y</sub></var> and the value |
|
|
<var title="">y</var>. |
|
|
|
|
|
<li> |
|
|
<p>Skip the remaining substeps for this element: if there are any |
|
|
more elements in <var title="">controls</var>, return to the top of |
|
|
the <a href="#constructing-form-data-set">constructing the form data |
|
|
set</a> step, otherwise, jump to the next step in the overall form |
|
|
submission algorithm. |
|
|
</ol> |
|
|
|
|
|
<li> |
|
|
<p>If the <var title="">field</var> element does not have a <code |
|
|
title=attr-fe-name><a href="#name9">name</a></code> attribute |
|
|
specified, or its <code title=attr-fe-name><a |
|
|
href="#name9">name</a></code> attribute's value is the empty string, |
|
|
skip these substeps for this element: if there are any more elements |
|
|
in <var title="">controls</var>, return to the top of the <a |
|
|
href="#constructing-form-data-set">constructing the form data set</a> |
|
|
step, otherwise, jump to the next step in the overall form submission |
|
|
algorithm. |
|
|
|
|
|
<li> |
|
|
<p>Let <var title="">name</var> be the value of the <var |
|
|
title="">field</var> element's <code title=attr-fe-name><a |
|
|
href="#name9">name</a></code> attribute. |
|
|
|
|
|
<li> |
|
|
<p>If the <var title="">field</var> element is a <code><a |
|
|
href="#select">select</a></code> element, then for each <code><a |
|
|
href="#option">option</a></code> element in the <code><a |
|
|
href="#select">select</a></code> element that is <a href="#selected1" |
|
|
title=concept-option-selected>selected</a>, append an entry in the |
|
|
<var title="">form data set</var> with the <var title="">name</var> as |
|
|
the name and the <a href="#value7" |
|
|
title=concept-option-value>value</a> of the <code><a |
|
|
href="#option">option</a></code> element as the value. |
|
|
|
|
|
<li> |
|
|
<p>Otherwise, if the <var title="">field</var> element is an <code><a |
|
|
href="#input0">input</a></code> element whose <code |
|
|
title=attr-input-type>type</code> attribute is in the <span |
|
|
title=attr-input-type-file-state>File Upload</span> state, then for |
|
|
each file <a href="#selected0" |
|
|
title=concept-input-type-file-selected>selected</a> in the <code><a |
|
|
href="#input0">input</a></code> element, append an entry in the <var |
|
|
title="">form data set</var> with the <var title="">name</var> as the |
|
|
name and the file as the value. (Both the file name and the file |
|
|
contents are subsequently used.) |
|
|
|
|
|
<li> |
|
|
<p>Otherwise, append an entry in the <var title="">form data set</var> |
|
|
with <var title="">name</var> as the name and the <a href="#value8" |
|
|
title=concept-fe-value>value</a> of the <var title="">field</var> |
|
|
element as the value. |
|
|
</ol> |
|
|
|
|
|
<li> |