HTML Standard Tracker

Diff (omit for latest revision)
Filter

Short URL: http://html5.org/r/2164

File a bug

SVNBugCommentTime (UTC)
2164WF2: Complete the 'construcint the form data set' subalgorithm.2008-09-11 22:16
Index: source
===================================================================
--- source	(revision 2163)
+++ source	(revision 2164)
@@ -24140,7 +24140,10 @@
 
   <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>
 
   <dl class="element">
@@ -24364,6 +24367,10 @@
 
   <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>
@@ -24587,7 +24594,9 @@
 
   <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>
 
   <p class="big-issue">...</p>
@@ -24631,11 +24640,11 @@
    <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>
 
@@ -24649,14 +24658,6 @@
        <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>
 
@@ -24686,10 +24687,103 @@
 
       </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>
 
    </li>

|