Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[] (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 9e62457
Show file tree
Hide file tree
Showing 3 changed files with 226 additions and 26 deletions.
1 change: 1 addition & 0 deletions header-whatwg
Expand Up @@ -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()">

Expand Down
131 changes: 118 additions & 13 deletions index
Expand Up @@ -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>
Expand Down Expand Up @@ -26827,6 +26828,12 @@ function AddCloud(data, x, y) { ... }</pre>
<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>

Expand Down Expand Up @@ -27140,6 +27147,12 @@ interface <dfn id=htmloptionelement>HTMLOptionElement</dfn> : <a href="#htmlelem

<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>
Expand Down Expand Up @@ -27412,6 +27425,8 @@ interface <dfn id=htmloptionelement>HTMLOptionElement</dfn> : <a href="#htmlelem
<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>...
Expand Down Expand Up @@ -27458,10 +27473,10 @@ interface <dfn id=htmloptionelement>HTMLOptionElement</dfn> : <a href="#htmlelem
<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>
Expand All @@ -27472,14 +27487,6 @@ interface <dfn id=htmloptionelement>HTMLOptionElement</dfn> : <a href="#htmlelem
<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>.

Expand Down Expand Up @@ -27508,7 +27515,105 @@ interface <dfn id=htmloptionelement>HTMLOptionElement</dfn> : <a href="#htmlelem
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>
Expand Down
120 changes: 107 additions & 13 deletions source
Expand Up @@ -24140,6 +24140,9 @@ function AddCloud(data, x, y) { ... }</pre>

<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>

Expand Down Expand Up @@ -24364,6 +24367,10 @@ interface <dfn>HTMLOptionElement</dfn> : <span>HTMLElement</span> {

<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>
Expand Down Expand Up @@ -24587,6 +24594,8 @@ interface <dfn>HTMLOptionElement</dfn> : <span>HTMLElement</span> {

<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>

Expand Down Expand Up @@ -24631,11 +24640,11 @@ interface <dfn>HTMLOptionElement</dfn> : <span>HTMLElement</span> {
<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>

Expand All @@ -24649,14 +24658,6 @@ interface <dfn>HTMLOptionElement</dfn> : <span>HTMLElement</span> {
<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>

Expand Down Expand Up @@ -24686,9 +24687,102 @@ interface <dfn>HTMLOptionElement</dfn> : <span>HTMLElement</span> {

</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>

Expand Down

0 comments on commit 9e62457

Please sign in to comment.