[html5] r2445 - [] (0) WF2: Add novalidate='' for submission; define what happens for re-entrant [...]

whatwg at whatwg.org whatwg at whatwg.org
Tue Nov 25 16:36:46 PST 2008


Author: ianh
Date: 2008-11-25 16:36:45 -0800 (Tue, 25 Nov 2008)
New Revision: 2445

Modified:
   index
   source
Log:
[] (0) WF2: Add novalidate='' for submission; define what happens for re-entrant .submit().

Modified: index
===================================================================
--- index	2008-11-25 21:39:27 UTC (rev 2444)
+++ index	2008-11-26 00:36:45 UTC (rev 2445)
@@ -17,7 +17,7 @@
   <div class=head>
    <p><a class=logo href=http://www.whatwg.org/ rel=home><img alt=WHATWG src=/images/logo></a></p>
    <h1>HTML 5</h1>
-   <h2 class="no-num no-toc" id=draft-recommendation-&mdash;-date:-01-jan-1901>Draft Recommendation &mdash; 25 November 2008</h2>
+   <h2 class="no-num no-toc" id=draft-recommendation-&mdash;-date:-01-jan-1901>Draft Recommendation &mdash; 26 November 2008</h2>
    <p>You can take part in this work. <a href=http://www.whatwg.org/mailing-list>Join the working group's discussion list.</a></p>
    <p><strong>Web designers!</strong> We have a <a href=http://blog.whatwg.org/faq/>FAQ</a>, a <a href=http://forums.whatwg.org/>forum</a>, and a <a href=http://www.whatwg.org/mailing-list#help>help mailing list</a> for you!</p>
    <dl><dt>Multiple-page version:</dt>
@@ -22816,6 +22816,7 @@
    <dd><code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code></dd>
    <dd><code title=attr-fs-method><a href=#attr-fs-method>method</a></code></dd>
    <dd><code title=attr-form-name><a href=#attr-form-name>name</a></code></dd>
+   <dd><code title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code></dd>
    <dd><code title=attr-fs-target><a href=#attr-fs-target>target</a></code></dd>
    <dt>DOM interface:</dt>
    <dd>
@@ -22825,6 +22826,7 @@
            attribute DOMString <a href=#dom-fs-enctype title=dom-fs-enctype>enctype</a>;
            attribute DOMString <a href=#dom-fs-method title=dom-fs-method>method</a>;
            attribute DOMString <a href=#dom-form-name title=dom-form-name>name</a>;
+           attribute boolean <a href=#dom-fs-novalidate title=dom-fs-novalidate>novalidate</a>;
            attribute DOMString <a href=#dom-fs-target title=dom-fs-target>target</a>;
 
   readonly attribute <a href=#htmlformcontrolscollection-0>HTMLFormControlsCollection</a> <a href=#dom-form-elements title=dom-form-elements>elements</a>;
@@ -22856,7 +22858,7 @@
   empty string, and the value must be unique amongst the
   <code><a href=#the-form-element>form</a></code> elements in the <code title=dom-forms>forms</code> collection that it is in, if any.</p>
 
-  <p>The <code title=attr-fs-action><a href=#attr-fs-action>action</a></code>, <code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>, <code title=attr-fs-method><a href=#attr-fs-method>method</a></code>, and <code title=attr-fs-target><a href=#attr-fs-target>target</a></code> attributes are <a href=#form-submission>attributes
+  <p>The <code title=attr-fs-action><a href=#attr-fs-action>action</a></code>, <code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>, <code title=attr-fs-method><a href=#attr-fs-method>method</a></code>, <code title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>, and <code title=attr-fs-target><a href=#attr-fs-target>target</a></code> attributes are <a href=#form-submission>attributes
   for form submission</a>.</p>
 
   <p>The <dfn id=dom-form-accept-charset title=dom-form-accept-charset><code>accept-charset</code></dfn>
@@ -23100,6 +23102,7 @@
    <dd><code title=attr-input-min><a href=#attr-input-min>min</a></code></dd>
    <dd><code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code></dd>
    <dd><code title=attr-fe-name><a href=#attr-fe-name>name</a></code></dd>
+   <dd><code title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code></dd>
    <dd><code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code></dd>
    <dd><code title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code></dd>
    <dd><code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code></dd>
@@ -23130,6 +23133,7 @@
            attribute DOMString <a href=#dom-input-min title=dom-input-min>min</a>;
            attribute boolean <a href=#dom-input-multiple title=dom-input-multiple>multiple</a>;
            attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
+           attribute boolean <a href=#dom-fs-novalidate title=dom-fs-noValidate>noValidate</a>;
            attribute DOMString <a href=#dom-input-pattern title=dom-input-pattern>pattern</a>;
            attribute DOMString <a href=#dom-input-placeholder title=dom-input-placeholder>placeholder</a>;
            attribute boolean <a href=#dom-input-readonly title=dom-input-readOnly>readOnly</a>;
@@ -23257,7 +23261,7 @@
      <td> A button
   </table><p>The <i>missing value default</i> is the <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> state.</p>
 
-  <p>Which of the <code title=attr-input-accept><a href=#attr-input-accept>accept</a></code>, <code title=attr-fs-action><a href=#attr-fs-action>action</a></code>, <code title=attr-input-alt><a href=#attr-input-alt>alt</a></code>, <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>, <code title=attr-input-checked><a href=#attr-input-checked>checked</a></code>, <code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>, and <code title=attr-input-list><a href=#attr-input-list>list</a></code>, <code title=attr-input-max><a href=#attr-input-max>max</a></code>, <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>, <code title=attr-fs-method><a href=#attr-fs-method>method</a></code>, <code title=attr-input-min><a href=#attr-input-min>min</a></code>, <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>, <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>, <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>, <code title=attr-input-required><a href=#attr-input-required>required</a></code>, <code title=attr-input-size><a href=#attr-input-size>size</a></code>, <code title=attr-input-src><a href=#attr-input-src>src</a></code>, <code title=attr-input-step><a href=#attr-input-step>step</a></code>, and <code title=attr-fs-target><a href=#attr-fs-target>target</a></code> attributes apply to an
+  <p>Which of the <code title=attr-input-accept><a href=#attr-input-accept>accept</a></code>, <code title=attr-fs-action><a href=#attr-fs-action>action</a></code>, <code title=attr-input-alt><a href=#attr-input-alt>alt</a></code>, <code title=attr-input-autocomplete><a href=#attr-input-autocomplete>autocomplete</a></code>, <code title=attr-input-checked><a href=#attr-input-checked>checked</a></code>, <code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>, and <code title=attr-input-list><a href=#attr-input-list>list</a></code>, <code title=attr-input-max><a href=#attr-input-max>max</a></code>, <code title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>, <code title=attr-fs-method><a href=#attr-fs-method>method</a></code>, <code title=attr-input-min><a href=#attr-input-min>min</a></code>, <code title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>, <code title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>, <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>, <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>, <code title=attr-input-required><a href=#attr-input-required>required</a></code>, <code title=attr-input-size><a href=#attr-input-size>size</a></code>, <code title=attr-input-src><a href=#attr-input-src>src</a></code>, <code title=attr-input-step><a href=#attr-input-step>step</a></code>, and <code title=attr-fs-target><a href=#attr-fs-target>target</a></code> attributes apply to an
   <code><a href=#the-input-element>input</a></code> element depends on the state of its <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute. Similarly, the <code title=dom-input-checked><a href=#dom-input-checked>checked</a></code>, <code title=dom-input-valueAsDate><a href=#dom-input-valueasdate>valueAsDate</a></code>, <code title=dom-input-valueAsNumber><a href=#dom-input-valueasnumber>valueAsNumber</a></code>, <code title=dom-input-list><a href=#dom-input-list>list</a></code>, and <code title=dom-input-selectedOption><a href=#dom-input-selectedoption>selectedOption</a></code> DOM
   attributes, and the <code title=dom-input-stepUp><a href=#dom-input-stepup>stepUp()</a></code>
   and <code title=dom-input-stepDown><a href=#dom-input-stepdown>stepDown()</a></code> methods, are
@@ -23564,6 +23568,29 @@
      <td class=no> &middot; <!-- Reset Button -->
 <!-- <td class="no"> &middot;      Button -->
 
+    <tr><th> <code title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>
+     <td class=no> &middot; <!-- Hidden -->
+     <td class=no> &middot; <!-- Text -->
+<!-- <td class="no"> &middot;      Search -->
+<!-- <td class="no"> &middot;      URL -->
+     <td class=no> &middot; <!-- E-mail -->
+     <td class=no> &middot; <!-- Password -->
+     <td class=no> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot;      Date -->
+<!-- <td class="no"> &middot;      Month -->
+<!-- <td class="no"> &middot;      Week -->
+<!-- <td class="no"> &middot;      Time -->
+     <td class=no> &middot; <!-- Local Date and Time -->
+<!-- <td class="no"> &middot;      Number -->
+     <td class=no> &middot; <!-- Range -->
+     <td class=no> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot;      Radio Button -->
+     <td class=no> &middot; <!-- File Upload -->
+     <td class=yes> Yes     <!-- Submit Button -->
+     <td class=yes> Yes     <!-- Image Button -->
+     <td class=no> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot;      Button -->
+
     <tr><th> <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>
      <td class=no> &middot; <!-- Hidden -->
      <td class=yes> Yes     <!-- Text -->
@@ -24142,6 +24169,7 @@
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
    <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+   <code class=no-backref title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
@@ -24219,6 +24247,7 @@
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
    <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+   <code class=no-backref title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>,
    <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>,
    <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>, and
    <code class=no-backref title=attr-fs-target><a href=#attr-fs-target>target</a></code>.</p>
@@ -24297,6 +24326,7 @@
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
    <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+   <code class=no-backref title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>,
    <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>,
    <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>, and
    <code class=no-backref title=attr-fs-target><a href=#attr-fs-target>target</a></code>.</p>
@@ -24397,6 +24427,7 @@
    <code class=no-backref title=attr-input-max><a href=#attr-input-max>max</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+   <code class=no-backref title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>,
    <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>,
    <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>, and
    <code class=no-backref title=attr-fs-target><a href=#attr-fs-target>target</a></code>.</p>
@@ -24460,6 +24491,7 @@
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
    <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+   <code class=no-backref title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>,
    <code class=no-backref title=attr-input-src><a href=#attr-input-src>src</a></code>,
    <code class=no-backref title=attr-input-step><a href=#attr-input-step>step</a></code>, and
    <code class=no-backref title=attr-fs-target><a href=#attr-fs-target>target</a></code>.</p>
@@ -24595,6 +24627,7 @@
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+   <code class=no-backref title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
@@ -24719,6 +24752,7 @@
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+   <code class=no-backref title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
@@ -24843,6 +24877,7 @@
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+   <code class=no-backref title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
@@ -24967,6 +25002,7 @@
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+   <code class=no-backref title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
@@ -25085,6 +25121,7 @@
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+   <code class=no-backref title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
@@ -25195,6 +25232,7 @@
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+   <code class=no-backref title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
@@ -25299,6 +25337,7 @@
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+   <code class=no-backref title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-size><a href=#attr-input-size>size</a></code>,
@@ -25429,6 +25468,7 @@
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+   <code class=no-backref title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
@@ -25497,6 +25537,7 @@
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
    <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+   <code class=no-backref title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
@@ -25614,6 +25655,7 @@
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
    <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+   <code class=no-backref title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
@@ -25714,6 +25756,7 @@
    <code class=no-backref title=attr-input-maxlength><a href=#attr-input-maxlength>maxlength</a></code>,
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
+   <code class=no-backref title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
@@ -25763,7 +25806,7 @@
   owner</a> from the <code><a href=#the-input-element>input</a></code> element; otherwise, it is
   to do nothing.</p>
 
-  <p>The <code title=attr-fs-action><a href=#attr-fs-action>action</a></code>, <code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>, <code title=attr-fs-method><a href=#attr-fs-method>method</a></code>, and <code title=attr-fs-target><a href=#attr-fs-target>target</a></code> attributes are <a href=#form-submission>attributes
+  <p>The <code title=attr-fs-action><a href=#attr-fs-action>action</a></code>, <code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>, <code title=attr-fs-method><a href=#attr-fs-method>method</a></code>, <code title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>, and <code title=attr-fs-target><a href=#attr-fs-target>target</a></code> attributes are <a href=#form-submission>attributes
   for form submission</a>.</p>
 
   <div class=bookkeeping>
@@ -25772,7 +25815,8 @@
    attributes and DOM attributes apply to the element:
    <code title=attr-fs-action><a href=#attr-fs-action>action</a></code>,
    <code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>,
-   <code title=attr-fs-method><a href=#attr-fs-method>method</a></code>, and
+   <code title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
+   <code title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>, and
    <code title=attr-fs-target><a href=#attr-fs-target>target</a></code> content attributes;
    <code title=dom-input-value><a href=#dom-input-value>value</a></code> DOM attribute.</p>
 
@@ -25921,7 +25965,7 @@
   equal to zero, and less than or equal to the rendered height, in CSS
   pixels, of the image.</p>
 
-  <hr><p>The <code title=attr-fs-action><a href=#attr-fs-action>action</a></code>, <code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>, <code title=attr-fs-method><a href=#attr-fs-method>method</a></code>, and <code title=attr-fs-target><a href=#attr-fs-target>target</a></code> attributes are <a href=#form-submission>attributes
+  <hr><p>The <code title=attr-fs-action><a href=#attr-fs-action>action</a></code>, <code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>, <code title=attr-fs-method><a href=#attr-fs-method>method</a></code>, <code title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>, and <code title=attr-fs-target><a href=#attr-fs-target>target</a></code> attributes are <a href=#form-submission>attributes
   for form submission</a>.</p>
 
   <div class=bookkeeping>
@@ -25932,6 +25976,7 @@
    <code title=attr-input-alt><a href=#attr-input-alt>alt</a></code>,
    <code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>,
    <code title=attr-fs-method><a href=#attr-fs-method>method</a></code>, 
+   <code title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>,
    <code title=attr-input-src><a href=#attr-input-src>src</a></code>, and
    <code title=attr-fs-target><a href=#attr-fs-target>target</a></code> content attributes;
    <code title=dom-input-value><a href=#dom-input-value>value</a></code> DOM attribute.</p>
@@ -26019,6 +26064,7 @@
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
    <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+   <code class=no-backref title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
@@ -26078,6 +26124,7 @@
    <code class=no-backref title=attr-fs-method><a href=#attr-fs-method>method</a></code>,
    <code class=no-backref title=attr-input-min><a href=#attr-input-min>min</a></code>,
    <code class=no-backref title=attr-input-multiple><a href=#attr-input-multiple>multiple</a></code>,
+   <code class=no-backref title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>,
    <code class=no-backref title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code>,
    <code class=no-backref title=attr-input-placeholder><a href=#attr-input-placeholder>placeholder</a></code>,
    <code class=no-backref title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code>,
@@ -26738,6 +26785,7 @@
    <dd><code title=attr-fae-form><a href=#attr-fae-form>form</a></code></dd>
    <dd><code title=attr-fs-method><a href=#attr-fs-method>method</a></code></dd>
    <dd><code title=attr-fe-name><a href=#attr-fe-name>name</a></code></dd>
+   <dd><code title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code></dd>
    <dd><code title=attr-fs-target><a href=#attr-fs-target>target</a></code></dd>
    <dd><code title=attr-button-type><a href=#attr-button-type>type</a></code></dd>
    <dd><code title=attr-button-value><a href=#attr-button-value>value</a></code></dd>
@@ -26751,6 +26799,7 @@
   readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>;
            attribute DOMString <a href=#dom-fs-method title=dom-fs-method>method</a>;
            attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>;
+           attribute DOMString <a href=#dom-fs-novalidate title=dom-fs-noValidate>noValidate</a>;
            attribute DOMString <a href=#dom-fs-target title=dom-fs-target>target</a>;
            attribute DOMString <a href=#dom-button-type title=dom-button-type>type</a>;
            attribute DOMString <a href=#dom-button-value title=dom-button-value>value</a>;
@@ -26824,7 +26873,7 @@
   attribute represents the element's name. The <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code> attribute is used to make
   the control non-interactive and to prevent its value from being
   submitted. The <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code>
-  attribute controls focus. The <code title=attr-fs-action><a href=#attr-fs-action>action</a></code>, <code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>, <code title=attr-fs-method><a href=#attr-fs-method>method</a></code>, and <code title=attr-fs-target><a href=#attr-fs-target>target</a></code> attributes are <a href=#form-submission>attributes
+  attribute controls focus. The <code title=attr-fs-action><a href=#attr-fs-action>action</a></code>, <code title=attr-fs-enctype><a href=#attr-fs-enctype>enctype</a></code>, <code title=attr-fs-method><a href=#attr-fs-method>method</a></code>, <code title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code>, and <code title=attr-fs-target><a href=#attr-fs-target>target</a></code> attributes are <a href=#form-submission>attributes
   for form submission</a>.</p>
 
   <p>The <dfn id=attr-button-value title=attr-button-value><code>value</code></dfn>
@@ -27863,7 +27912,7 @@
 
   <p>The <dfn id=attr-fs-target title=attr-fs-target><code>target</code></dfn> content
   attribute, if present, must be a <a href=#valid-browsing-context-name-or-keyword>valid browsing context name
-  or keyword</a>.
+  or keyword</a>.</p>
 
   <p>The <dfn id=concept-fs-target title=concept-fs-target>target</dfn> of an element is
   the value of the element's <code title=attr-fs-target><a href=#attr-fs-target>target</a></code> attribute, if it has one; or
@@ -27874,9 +27923,20 @@
   first such <code><a href=#the-base-element>base</a></code> element; or, if there is no such
   element, the empty string.</p> <!-- c.f. hyperlink following -->
 
+  <p>The <dfn id=attr-fs-novalidate title=attr-fs-novalidate><code>novalidate</code></dfn>
+  content attribute is a <a href=#boolean-attribute>boolean attribute</a>. If present,
+  it indicates that the form is not to be validated during
+  submission.</p>
+
+  <p>The <dfn id=concept-fs-novalidate title=concept-fs-novalidate>no-validate state</dfn> of
+  an element is true if the element's <code title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code> attribute is present or
+  if the element's <a href=#form-owner>form owner</a>'s <code title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code> attribute is present,
+  and false otherwise.</p>
+
   <p>The <dfn id=dom-fs-action title=dom-fs-action><code>action</code></dfn>, <dfn id=dom-fs-method title=dom-fs-method><code>method</code></dfn>, <dfn id=dom-fs-enctype title=dom-fs-enctype><code>enctype</code></dfn>, and <dfn id=dom-fs-target title=dom-fs-target><code>target</code></dfn> DOM attributes must
   <a href=#reflect>reflect</a> the respective content attributes of the same
-  name.</p>
+  name. The <dfn id=dom-fs-novalidate title=dom-fs-noValidate><code>noValidate</code></dfn> DOM
+  attribute must reflect the <code title=attr-fs-novalidate><a href=#attr-fs-novalidate>novalidate</a></code> content attribute.</p>
   
 
 
@@ -28175,22 +28235,35 @@
    <a href=#sandboxed-forms-browsing-context-flag>sandboxed forms browsing context flag</a> set, then abort
    these steps without doing anything.</li>
 
+   <li><p>If <var title="">form</var> is already being submitted
+   (i.e. the form was <a href=#concept-form-submit title=concept-form-submit>submitted</a> again while processing
+   the events fired from the next two steps, probably from a script
+   redundantly calling the <code title=dom-form-submit><a href=#dom-form-submit>submit()</a></code> method on <var title="">form</var>), then abort these steps. This doesn't affect
+   the earlier instance of this algorithm.</li>
+
+   <!-- lock (implicit in previous step) -->
+
    <li><p>If the <var title="">submitter</var> is anything but a
-   <code><a href=#the-form-element>form</a></code> element, then <a href=#interactively-validate-the-constraints>interactively validate the
+   <code><a href=#the-form-element>form</a></code> element, and the <var title="">submitter</var>
+   element's <a href=#concept-fs-novalidate title=concept-fs-novalidate>no-validate
+   state</a> is false, then <a href=#interactively-validate-the-constraints>interactively validate the
    constraints</a> of <var title="">form</var> and examine the
    result: if the result is negative (the constraint validation
    concluded that there were invalid fields and probably informed the
    user of this) then abort these steps.</li>
-   <!-- XXX define what happens if .submit() is called during this -->
 
    <li><p>If the <var title="">submitter</var> is anything but a
    <code><a href=#the-form-element>form</a></code> element, then <a href=#fire-a-simple-event>fire a simple event</a>
    that bubbles<!--XXX check it bubbles-->, named <code title=event-submit>submit</code>, at <var title="">form</var>. If
    the event's default action is prevented (i.e. if the event is
    canceled) then abort these steps. Otherwise, continue (effectively
-   the default action is to perform the submission).</li> <!-- XXX
-   define what happens if .submit() is called during this -->
+   the default action is to perform the submission).</li>
 
+   <!-- if you add any steps between the "lock" and "unlock" lines,
+   make sure to update the step immediately before the "lock" line -->
+
+   <!-- unlock -->
+
    <li><p>Let <var title="">controls</var> be a list of all the <a href=#category-submit title=category-submit>submittable</a> elements whose
    <a href=#form-owner>form owner</a> is <var title="">form</var>, in <a href=#tree-order>tree
    order</a>.</li>

Modified: source
===================================================================
--- source	2008-11-25 21:39:27 UTC (rev 2444)
+++ source	2008-11-26 00:36:45 UTC (rev 2445)
@@ -25408,6 +25408,7 @@
    <dd><code title="attr-fs-enctype">enctype</code></dd>
    <dd><code title="attr-fs-method">method</code></dd>
    <dd><code title="attr-form-name">name</code></dd>
+   <dd><code title="attr-fs-novalidate">novalidate</code></dd>
    <dd><code title="attr-fs-target">target</code></dd>
    <dt>DOM interface:</dt>
    <dd>
@@ -25417,6 +25418,7 @@
            attribute DOMString <span title="dom-fs-enctype">enctype</span>;
            attribute DOMString <span title="dom-fs-method">method</span>;
            attribute DOMString <span title="dom-form-name">name</span>;
+           attribute boolean <span title="dom-fs-novalidate">novalidate</span>;
            attribute DOMString <span title="dom-fs-target">target</span>;
 
   readonly attribute <span>HTMLFormControlsCollection</span> <span title="dom-form-elements">elements</span>;
@@ -25456,7 +25458,8 @@
 
   <p>The <code title="attr-fs-action">action</code>, <code
   title="attr-fs-enctype">enctype</code>, <code
-  title="attr-fs-method">method</code>, and <code
+  title="attr-fs-method">method</code>, <code
+  title="attr-fs-novalidate">novalidate</code>, and <code
   title="attr-fs-target">target</code> attributes are <span>attributes
   for form submission</span>.</p>
 
@@ -25735,6 +25738,7 @@
    <dd><code title="attr-input-min">min</code></dd>
    <dd><code title="attr-input-multiple">multiple</code></dd>
    <dd><code title="attr-fe-name">name</code></dd>
+   <dd><code title="attr-fs-novalidate">novalidate</code></dd>
    <dd><code title="attr-input-pattern">pattern</code></dd>
    <dd><code title="attr-input-placeholder">placeholder</code></dd>
    <dd><code title="attr-input-readonly">readonly</code></dd>
@@ -25765,6 +25769,7 @@
            attribute DOMString <span title="dom-input-min">min</span>;
            attribute boolean <span title="dom-input-multiple">multiple</span>;
            attribute DOMString <span title="dom-fe-name">name</span>;
+           attribute boolean <span title="dom-fs-noValidate">noValidate</span>;
            attribute DOMString <span title="dom-input-pattern">pattern</span>;
            attribute DOMString <span title="dom-input-placeholder">placeholder</span>;
            attribute boolean <span title="dom-input-readOnly">readOnly</span>;
@@ -25936,6 +25941,7 @@
   title="attr-fs-method">method</code>, <code
   title="attr-input-min">min</code>, <code
   title="attr-input-multiple">multiple</code>, <code
+  title="attr-fs-novalidate">novalidate</code>, <code
   title="attr-input-pattern">pattern</code>, <code
   title="attr-input-readonly">readonly</code>, <code
   title="attr-input-required">required</code>, <code
@@ -26272,6 +26278,30 @@
 <!-- <td class="no"> &middot;      Button -->
 
     <tr>
+     <th> <code title="attr-fs-novalidate">novalidate</code>
+     <td class="no"> &middot; <!-- Hidden -->
+     <td class="no"> &middot; <!-- Text -->
+<!-- <td class="no"> &middot;      Search -->
+<!-- <td class="no"> &middot;      URL -->
+     <td class="no"> &middot; <!-- E-mail -->
+     <td class="no"> &middot; <!-- Password -->
+     <td class="no"> &middot; <!-- Date and Time -->
+<!-- <td class="no"> &middot;      Date -->
+<!-- <td class="no"> &middot;      Month -->
+<!-- <td class="no"> &middot;      Week -->
+<!-- <td class="no"> &middot;      Time -->
+     <td class="no"> &middot; <!-- Local Date and Time -->
+<!-- <td class="no"> &middot;      Number -->
+     <td class="no"> &middot; <!-- Range -->
+     <td class="no"> &middot; <!-- Checkbox -->
+<!-- <td class="no"> &middot;      Radio Button -->
+     <td class="no"> &middot; <!-- File Upload -->
+     <td class="yes"> Yes     <!-- Submit Button -->
+     <td class="yes"> Yes     <!-- Image Button -->
+     <td class="no"> &middot; <!-- Reset Button -->
+<!-- <td class="no"> &middot;      Button -->
+
+    <tr>
      <th> <code title="attr-input-pattern">pattern</code>
      <td class="no"> &middot; <!-- Hidden -->
      <td class="yes"> Yes     <!-- Text -->
@@ -26929,6 +26959,7 @@
    <code class="no-backref" title="attr-fs-method">method</code>,
    <code class="no-backref" title="attr-input-min">min</code>,
    <code class="no-backref" title="attr-input-multiple">multiple</code>,
+   <code class="no-backref" title="attr-fs-novalidate">novalidate</code>,
    <code class="no-backref" title="attr-input-pattern">pattern</code>,
    <code class="no-backref" title="attr-input-placeholder">placeholder</code>,
    <code class="no-backref" title="attr-input-readonly">readonly</code>,
@@ -27014,6 +27045,7 @@
    <code class="no-backref" title="attr-fs-method">method</code>,
    <code class="no-backref" title="attr-input-min">min</code>,
    <code class="no-backref" title="attr-input-multiple">multiple</code>,
+   <code class="no-backref" title="attr-fs-novalidate">novalidate</code>,
    <code class="no-backref" title="attr-input-src">src</code>,
    <code class="no-backref" title="attr-input-step">step</code>, and
    <code class="no-backref" title="attr-fs-target">target</code>.</p>
@@ -27099,6 +27131,7 @@
    <code class="no-backref" title="attr-fs-method">method</code>,
    <code class="no-backref" title="attr-input-min">min</code>,
    <code class="no-backref" title="attr-input-multiple">multiple</code>,
+   <code class="no-backref" title="attr-fs-novalidate">novalidate</code>,
    <code class="no-backref" title="attr-input-src">src</code>,
    <code class="no-backref" title="attr-input-step">step</code>, and
    <code class="no-backref" title="attr-fs-target">target</code>.</p>
@@ -27211,6 +27244,7 @@
    <code class="no-backref" title="attr-input-max">max</code>,
    <code class="no-backref" title="attr-fs-method">method</code>,
    <code class="no-backref" title="attr-input-min">min</code>,
+   <code class="no-backref" title="attr-fs-novalidate">novalidate</code>,
    <code class="no-backref" title="attr-input-src">src</code>,
    <code class="no-backref" title="attr-input-step">step</code>, and
    <code class="no-backref" title="attr-fs-target">target</code>.</p>
@@ -27280,6 +27314,7 @@
    <code class="no-backref" title="attr-fs-method">method</code>,
    <code class="no-backref" title="attr-input-min">min</code>,
    <code class="no-backref" title="attr-input-multiple">multiple</code>,
+   <code class="no-backref" title="attr-fs-novalidate">novalidate</code>,
    <code class="no-backref" title="attr-input-src">src</code>,
    <code class="no-backref" title="attr-input-step">step</code>, and
    <code class="no-backref" title="attr-fs-target">target</code>.</p>
@@ -27437,6 +27472,7 @@
    <code class="no-backref" title="attr-input-maxlength">maxlength</code>,
    <code class="no-backref" title="attr-fs-method">method</code>,
    <code class="no-backref" title="attr-input-multiple">multiple</code>,
+   <code class="no-backref" title="attr-fs-novalidate">novalidate</code>,
    <code class="no-backref" title="attr-input-pattern">pattern</code>,
    <code class="no-backref" title="attr-input-placeholder">placeholder</code>,
    <code class="no-backref" title="attr-input-size">size</code>,
@@ -27579,6 +27615,7 @@
    <code class="no-backref" title="attr-input-maxlength">maxlength</code>,
    <code class="no-backref" title="attr-fs-method">method</code>,
    <code class="no-backref" title="attr-input-multiple">multiple</code>,
+   <code class="no-backref" title="attr-fs-novalidate">novalidate</code>,
    <code class="no-backref" title="attr-input-pattern">pattern</code>,
    <code class="no-backref" title="attr-input-placeholder">placeholder</code>,
    <code class="no-backref" title="attr-input-size">size</code>,
@@ -27723,6 +27760,7 @@
    <code class="no-backref" title="attr-input-maxlength">maxlength</code>,
    <code class="no-backref" title="attr-fs-method">method</code>,
    <code class="no-backref" title="attr-input-multiple">multiple</code>,
+   <code class="no-backref" title="attr-fs-novalidate">novalidate</code>,
    <code class="no-backref" title="attr-input-pattern">pattern</code>,
    <code class="no-backref" title="attr-input-placeholder">placeholder</code>,
    <code class="no-backref" title="attr-input-size">size</code>,
@@ -27866,6 +27904,7 @@
    <code class="no-backref" title="attr-input-maxlength">maxlength</code>,
    <code class="no-backref" title="attr-fs-method">method</code>,
    <code class="no-backref" title="attr-input-multiple">multiple</code>,
+   <code class="no-backref" title="attr-fs-novalidate">novalidate</code>,
    <code class="no-backref" title="attr-input-pattern">pattern</code>,
    <code class="no-backref" title="attr-input-placeholder">placeholder</code>,
    <code class="no-backref" title="attr-input-size">size</code>,
@@ -28004,6 +28043,7 @@
    <code class="no-backref" title="attr-input-maxlength">maxlength</code>,
    <code class="no-backref" title="attr-fs-method">method</code>,
    <code class="no-backref" title="attr-input-multiple">multiple</code>,
+   <code class="no-backref" title="attr-fs-novalidate">novalidate</code>,
    <code class="no-backref" title="attr-input-pattern">pattern</code>,
    <code class="no-backref" title="attr-input-placeholder">placeholder</code>,
    <code class="no-backref" title="attr-input-size">size</code>,
@@ -28129,6 +28169,7 @@
    <code class="no-backref" title="attr-input-maxlength">maxlength</code>,
    <code class="no-backref" title="attr-fs-method">method</code>,
    <code class="no-backref" title="attr-input-multiple">multiple</code>,
+   <code class="no-backref" title="attr-fs-novalidate">novalidate</code>,
    <code class="no-backref" title="attr-input-pattern">pattern</code>,
    <code class="no-backref" title="attr-input-placeholder">placeholder</code>,
    <code class="no-backref" title="attr-input-size">size</code>,
@@ -28243,6 +28284,7 @@
    <code class="no-backref" title="attr-input-maxlength">maxlength</code>,
    <code class="no-backref" title="attr-fs-method">method</code>,
    <code class="no-backref" title="attr-input-multiple">multiple</code>,
+   <code class="no-backref" title="attr-fs-novalidate">novalidate</code>,
    <code class="no-backref" title="attr-input-pattern">pattern</code>,
    <code class="no-backref" title="attr-input-placeholder">placeholder</code>,
    <code class="no-backref" title="attr-input-size">size</code>,
@@ -28395,6 +28437,7 @@
    <code class="no-backref" title="attr-input-maxlength">maxlength</code>,
    <code class="no-backref" title="attr-fs-method">method</code>,
    <code class="no-backref" title="attr-input-multiple">multiple</code>,
+   <code class="no-backref" title="attr-fs-novalidate">novalidate</code>,
    <code class="no-backref" title="attr-input-pattern">pattern</code>,
    <code class="no-backref" title="attr-input-placeholder">placeholder</code>,
    <code class="no-backref" title="attr-input-readonly">readonly</code>,
@@ -28469,6 +28512,7 @@
    <code class="no-backref" title="attr-fs-method">method</code>,
    <code class="no-backref" title="attr-input-min">min</code>,
    <code class="no-backref" title="attr-input-multiple">multiple</code>,
+   <code class="no-backref" title="attr-fs-novalidate">novalidate</code>,
    <code class="no-backref" title="attr-input-pattern">pattern</code>,
    <code class="no-backref" title="attr-input-placeholder">placeholder</code>,
    <code class="no-backref" title="attr-input-readonly">readonly</code>,
@@ -28606,6 +28650,7 @@
    <code class="no-backref" title="attr-fs-method">method</code>,
    <code class="no-backref" title="attr-input-min">min</code>,
    <code class="no-backref" title="attr-input-multiple">multiple</code>,
+   <code class="no-backref" title="attr-fs-novalidate">novalidate</code>,
    <code class="no-backref" title="attr-input-pattern">pattern</code>,
    <code class="no-backref" title="attr-input-placeholder">placeholder</code>,
    <code class="no-backref" title="attr-input-readonly">readonly</code>,
@@ -28721,6 +28766,7 @@
    <code class="no-backref" title="attr-input-maxlength">maxlength</code>,
    <code class="no-backref" title="attr-fs-method">method</code>,
    <code class="no-backref" title="attr-input-min">min</code>,
+   <code class="no-backref" title="attr-fs-novalidate">novalidate</code>,
    <code class="no-backref" title="attr-input-pattern">pattern</code>,
    <code class="no-backref" title="attr-input-placeholder">placeholder</code>,
    <code class="no-backref" title="attr-input-readonly">readonly</code>,
@@ -28776,7 +28822,8 @@
 
   <p>The <code title="attr-fs-action">action</code>, <code
   title="attr-fs-enctype">enctype</code>, <code
-  title="attr-fs-method">method</code>, and <code
+  title="attr-fs-method">method</code>, <code
+  title="attr-fs-novalidate">novalidate</code>, and <code
   title="attr-fs-target">target</code> attributes are <span>attributes
   for form submission</span>.</p>
 
@@ -28786,7 +28833,8 @@
    attributes and DOM attributes apply to the element:
    <code title="attr-fs-action">action</code>,
    <code title="attr-fs-enctype">enctype</code>,
-   <code title="attr-fs-method">method</code>, and
+   <code title="attr-fs-method">method</code>,
+   <code title="attr-fs-novalidate">novalidate</code>, and
    <code title="attr-fs-target">target</code> content attributes;
    <code title="dom-input-value">value</code> DOM attribute.</p>
 
@@ -28980,7 +29028,8 @@
 
   <p>The <code title="attr-fs-action">action</code>, <code
   title="attr-fs-enctype">enctype</code>, <code
-  title="attr-fs-method">method</code>, and <code
+  title="attr-fs-method">method</code>, <code
+  title="attr-fs-novalidate">novalidate</code>, and <code
   title="attr-fs-target">target</code> attributes are <span>attributes
   for form submission</span>.</p>
 
@@ -28992,6 +29041,7 @@
    <code title="attr-input-alt">alt</code>,
    <code title="attr-fs-enctype">enctype</code>,
    <code title="attr-fs-method">method</code>, 
+   <code title="attr-fs-novalidate">novalidate</code>,
    <code title="attr-input-src">src</code>, and
    <code title="attr-fs-target">target</code> content attributes;
    <code title="dom-input-value">value</code> DOM attribute.</p>
@@ -29086,6 +29136,7 @@
    <code class="no-backref" title="attr-fs-method">method</code>,
    <code class="no-backref" title="attr-input-min">min</code>,
    <code class="no-backref" title="attr-input-multiple">multiple</code>,
+   <code class="no-backref" title="attr-fs-novalidate">novalidate</code>,
    <code class="no-backref" title="attr-input-pattern">pattern</code>,
    <code class="no-backref" title="attr-input-placeholder">placeholder</code>,
    <code class="no-backref" title="attr-input-readonly">readonly</code>,
@@ -29152,6 +29203,7 @@
    <code class="no-backref" title="attr-fs-method">method</code>,
    <code class="no-backref" title="attr-input-min">min</code>,
    <code class="no-backref" title="attr-input-multiple">multiple</code>,
+   <code class="no-backref" title="attr-fs-novalidate">novalidate</code>,
    <code class="no-backref" title="attr-input-pattern">pattern</code>,
    <code class="no-backref" title="attr-input-placeholder">placeholder</code>,
    <code class="no-backref" title="attr-input-readonly">readonly</code>,
@@ -29979,6 +30031,7 @@
    <dd><code title="attr-fae-form">form</code></dd>
    <dd><code title="attr-fs-method">method</code></dd>
    <dd><code title="attr-fe-name">name</code></dd>
+   <dd><code title="attr-fs-novalidate">novalidate</code></dd>
    <dd><code title="attr-fs-target">target</code></dd>
    <dd><code title="attr-button-type">type</code></dd>
    <dd><code title="attr-button-value">value</code></dd>
@@ -29992,6 +30045,7 @@
   readonly attribute <span>HTMLFormElement</span> <span title="dom-fae-form">form</span>;
            attribute DOMString <span title="dom-fs-method">method</span>;
            attribute DOMString <span title="dom-fe-name">name</span>;
+           attribute DOMString <span title="dom-fs-noValidate">noValidate</span>;
            attribute DOMString <span title="dom-fs-target">target</span>;
            attribute DOMString <span title="dom-button-type">type</span>;
            attribute DOMString <span title="dom-button-value">value</span>;
@@ -30087,7 +30141,8 @@
   attribute controls focus. The <code
   title="attr-fs-action">action</code>, <code
   title="attr-fs-enctype">enctype</code>, <code
-  title="attr-fs-method">method</code>, and <code
+  title="attr-fs-method">method</code>, <code
+  title="attr-fs-novalidate">novalidate</code>, and <code
   title="attr-fs-target">target</code> attributes are <span>attributes
   for form submission</span>.</p>
 
@@ -31377,7 +31432,7 @@
 
   <p>The <dfn title="attr-fs-target"><code>target</code></dfn> content
   attribute, if present, must be a <span>valid browsing context name
-  or keyword</span>.
+  or keyword</span>.</p>
 
   <p>The <dfn title="concept-fs-target">target</dfn> of an element is
   the value of the element's <code
@@ -31391,12 +31446,27 @@
   first such <code>base</code> element; or, if there is no such
   element, the empty string.</p> <!-- c.f. hyperlink following -->
 
+  <p>The <dfn title="attr-fs-novalidate"><code>novalidate</code></dfn>
+  content attribute is a <span>boolean attribute</span>. If present,
+  it indicates that the form is not to be validated during
+  submission.</p>
+
+  <p>The <dfn title="concept-fs-novalidate">no-validate state</dfn> of
+  an element is true if the element's <code
+  title="attr-fs-novalidate">novalidate</code> attribute is present or
+  if the element's <span>form owner</span>'s <code
+  title="attr-fs-novalidate">novalidate</code> attribute is present,
+  and false otherwise.</p>
+
   <p>The <dfn title="dom-fs-action"><code>action</code></dfn>, <dfn
   title="dom-fs-method"><code>method</code></dfn>, <dfn
   title="dom-fs-enctype"><code>enctype</code></dfn>, and <dfn
   title="dom-fs-target"><code>target</code></dfn> DOM attributes must
   <span>reflect</span> the respective content attributes of the same
-  name.</p>
+  name. The <dfn
+  title="dom-fs-noValidate"><code>noValidate</code></dfn> DOM
+  attribute must reflect the <code
+  title="attr-fs-novalidate">novalidate</code> content attribute.</p>
   
 
 
@@ -31761,13 +31831,25 @@
    <span>sandboxed forms browsing context flag</span> set, then abort
    these steps without doing anything.</p></li>
 
+   <li><p>If <var title="">form</var> is already being submitted
+   (i.e. the form was <span
+   title="concept-form-submit">submitted</span> again while processing
+   the events fired from the next two steps, probably from a script
+   redundantly calling the <code
+   title="dom-form-submit">submit()</code> method on <var
+   title="">form</var>), then abort these steps. This doesn't affect
+   the earlier instance of this algorithm.</p></li>
+
+   <!-- lock (implicit in previous step) -->
+
    <li><p>If the <var title="">submitter</var> is anything but a
-   <code>form</code> element, then <span>interactively validate the
+   <code>form</code> element, and the <var title="">submitter</var>
+   element's <span title="concept-fs-novalidate">no-validate
+   state</span> is false, then <span>interactively validate the
    constraints</span> of <var title="">form</var> and examine the
    result: if the result is negative (the constraint validation
    concluded that there were invalid fields and probably informed the
    user of this) then abort these steps.</p></li>
-   <!-- XXX define what happens if .submit() is called during this -->
 
    <li><p>If the <var title="">submitter</var> is anything but a
    <code>form</code> element, then <span>fire a simple event</span>
@@ -31775,9 +31857,13 @@
    title="event-submit">submit</code>, at <var title="">form</var>. If
    the event's default action is prevented (i.e. if the event is
    canceled) then abort these steps. Otherwise, continue (effectively
-   the default action is to perform the submission).</p></li> <!-- XXX
-   define what happens if .submit() is called during this -->
+   the default action is to perform the submission).</p></li>
 
+   <!-- if you add any steps between the "lock" and "unlock" lines,
+   make sure to update the step immediately before the "lock" line -->
+
+   <!-- unlock -->
+
    <li><p>Let <var title="">controls</var> be a list of all the <span
    title="category-submit">submittable</span> elements whose
    <span>form owner</span> is <var title="">form</var>, in <span>tree




More information about the Commit-Watchers mailing list