Skip to content
Permalink
Browse files

[] (0) WF2: Complete the 'construcint the form data set' subalgorithm.

git-svn-id: http://svn.whatwg.org/webapps@2164 340c8d12-0b0e-0410-8428-c7bf67bfef74
  • Loading branch information...
Hixie committed Sep 11, 2008
1 parent 840d17c commit 9e62457cadba1d03d89932781ec2256224324940
Showing with 226 additions and 26 deletions.
  1. +1 −0 header-whatwg
  2. +118 −13 index
  3. +107 −13 source
@@ -19,6 +19,7 @@
</style>
<link rel="stylesheet" href="status.css">
<script src="status.js"></script>
<script src="dfn.js"></script>
</head>
<body class="draft" onload="initAnnotations()">

131 index
@@ -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>
120 source

<p class="big-issue">... <dfn title="concept-input-checked">checked</dfn></p>

<p class="big-issue">... image: <dfn title="concept-input-type-image-coordinate">selected coordinate</dfn></p>

<p class="big-issue">... <dfn title="concept-input-type-file-selected">selected file</dfn></p>

<h4>The <dfn><code>button</code></dfn> element</h4>


<p class="big-issue">...</p>

<p class="big-issue">... <dfn title="concept-option-selected">selected</dfn></p>

<p class="big-issue">... <dfn title="concept-option-value">value</dfn></p>

<p class="big-issue">
<dfn title="dom-option"><code>Option()</code></dfn>
<dfn title="dom-option-n"><code>Option(<var title="">name</var>)</code></dfn>

<p class="big-issue">... <dfn title="dom-fe-disabled">disabled</dfn> DOM attribute</p>

<p class="big-issue">... <dfn title="concept-fe-value">value</dfn></p>


<h4>Constraint validation</h4>

<li><p>Let the <var title="">form data set</var> be a list of
name/value pairs, initially empty.</p></li>

<li>
<li id="constructing-form-data-set">

<p>For each element <var title="">field</var> in <var
title="">controls</var>, in <span>tree order</span>, run the
following substeps:</p>
<p><strong>Constructing the form data set</strong>. For each
element <var title="">field</var> in <var title="">controls</var>,
in <span>tree order</span>, run the following substeps:</p>

<ol>

<li>The <var title="">field</var> element has a
<code>datalist</code> element ancestor.</li>

<li>The <var title="">field</var> element does not have a <code
title="attr-fe-name">name</code> attribute specified, or its
<code title="attr-fe-name">name</code> attribute's value is the
empty string, and it is not an <code>input</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>

<li>The <var title="">field</var> element is <span
title="concept-fe-disabled">disabled</span>.</li>


</ul>

<p>Otherwise, process <var title="">field</var> as follows:</p>

</li>

<li class="big-issue">...</li>
<li>

<p>If the <var title="">field</var> element is an
<code>input</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">name</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.</p></li>

<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.</p></li>

<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.</p></li>

<li><p>The <var title="">field</var> element is <var
title="">submitter</var>, and before this algorithm was invoked
the user <span
title="concept-input-type-image-coordinate">indicated a
coordinate</span>. 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.</p></li>

<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>.</p></li>

<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>.</p></li>

<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.</p></li>

</ol>

</li>

<li><p>If the <var title="">field</var> element does not have a
<code title="attr-fe-name">name</code> attribute specified, or
its <code title="attr-fe-name">name</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.</p></li>

<li><p>Let <var title="">name</var> be the value of the <var
title="">field</var> element's <code
title="attr-fe-name">name</code> attribute.</p></li>

<li><p>If the <var title="">field</var> element is a
<code>select</code> element, then for each <code>option</code>
element in the <code>select</code> element that is <span
title="concept-option-selected">selected</span>, append an entry
in the <var title="">form data set</var> with the <var
title="">name</var> as the name and the <span
title="concept-option-value">value</span> of the
<code>option</code> element as the value.</p></li>

<li><p>Otherwise, if the <var title="">field</var> element is an
<code>input</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 <span
title="concept-input-type-file-selected">selected</span> in the
<code>input</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.)</p></li>

<li><p>Otherwise, append an entry in the <var title="">form data
set</var> with <var title="">name</var> as the name and the <span
title="concept-fe-value">value</span> of the <var
title="">field</var> element as the value.</p></li>

</ol>

0 comments on commit 9e62457

Please sign in to comment.
You can’t perform that action at this time.