W3C home > Mailing lists > Public > public-html-diffs@w3.org > March 2011

hixie: Drop forminput and formchange events, and their associated machinery, since you can now put oninput and onchange everywhere which makes them far less compelling. (whatwg r5928)

From: poot <cvsmail@w3.org>
Date: Thu, 03 Mar 2011 18:23:38 -0500
To: public-html-diffs@w3.org
Message-Id: <E1PvHru-0000ir-BY@jay.w3.org>
hixie: Drop forminput and formchange events, and their associated
machinery, since you can now put oninput and onchange everywhere which
makes them far less compelling. (whatwg r5928)

http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.4768&r2=1.4769&f=h
http://html5.org/tools/web-apps-tracker?from=5927&to=5928

===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.4768
retrieving revision 1.4769
diff -u -d -r1.4768 -r1.4769
--- Overview.html	3 Mar 2011 23:05:03 -0000	1.4768
+++ Overview.html	3 Mar 2011 23:22:20 -0000	1.4769
@@ -916,8 +916,7 @@
        <li><a href="#url-encoded-form-data"><span class="secno">4.10.22.4 </span>URL-encoded form data</a></li>
        <li><a href="#multipart-form-data"><span class="secno">4.10.22.5 </span>Multipart form data</a></li>
        <li><a href="#plain-text-form-data"><span class="secno">4.10.22.6 </span>Plain text form data</a></ol></li>
-     <li><a href="#resetting-a-form"><span class="secno">4.10.23 </span>Resetting a form</a></li>
-     <li><a href="#event-dispatch"><span class="secno">4.10.24 </span>Event dispatch</a></ol></li>
+     <li><a href="#resetting-a-form"><span class="secno">4.10.23 </span>Resetting a form</a></ol></li>
    <li><a href="#interactive-elements"><span class="secno">4.11 </span>Interactive elements</a>
     <ol>
      <li><a href="#the-details-element"><span class="secno">4.11.1 </span>The <code>details</code> element</a></li>
@@ -7302,8 +7301,6 @@
            attribute <a href="#function">Function</a> <a href="#handler-onended" title="handler-onended">onended</a>;
            attribute <a href="#function">Function</a> <a href="#handler-onerror" title="handler-onerror">onerror</a>;
            attribute <a href="#function">Function</a> <a href="#handler-onfocus" title="handler-onfocus">onfocus</a>;
-           attribute <a href="#function">Function</a> <a href="#handler-onformchange" title="handler-onformchange">onformchange</a>;
-           attribute <a href="#function">Function</a> <a href="#handler-onforminput" title="handler-onforminput">onforminput</a>;
            attribute <a href="#function">Function</a> <a href="#handler-oninput" title="handler-oninput">oninput</a>;
            attribute <a href="#function">Function</a> <a href="#handler-oninvalid" title="handler-oninvalid">oninvalid</a>;
            attribute <a href="#function">Function</a> <a href="#handler-onkeydown" title="handler-onkeydown">onkeydown</a>;
@@ -8295,8 +8292,6 @@
            attribute <a href="#function">Function</a> <a href="#handler-onended" title="handler-onended">onended</a>;
            attribute <a href="#function">Function</a> <a href="#handler-onerror" title="handler-onerror">onerror</a>;
            attribute <a href="#function">Function</a> <a href="#handler-onfocus" title="handler-onfocus">onfocus</a>;
-           attribute <a href="#function">Function</a> <a href="#handler-onformchange" title="handler-onformchange">onformchange</a>;
-           attribute <a href="#function">Function</a> <a href="#handler-onforminput" title="handler-onforminput">onforminput</a>;
            attribute <a href="#function">Function</a> <a href="#handler-oninput" title="handler-oninput">oninput</a>;
            attribute <a href="#function">Function</a> <a href="#handler-oninvalid" title="handler-oninvalid">oninvalid</a>;
            attribute <a href="#function">Function</a> <a href="#handler-onkeydown" title="handler-onkeydown">onkeydown</a>;
@@ -8382,8 +8377,6 @@
    <li><code title="handler-onended"><a href="#handler-onended">onended</a></code></li>
    <li><code title="handler-onerror"><a href="#handler-onerror">onerror</a></code>*</li>
    <li><code title="handler-onfocus"><a href="#handler-onfocus">onfocus</a></code>*</li>
-   <li><code title="handler-onformchange"><a href="#handler-onformchange">onformchange</a></code></li>
-   <li><code title="handler-onforminput"><a href="#handler-onforminput">onforminput</a></code></li>
    <li><code title="handler-oninput"><a href="#handler-oninput">oninput</a></code></li>
    <li><code title="handler-oninvalid"><a href="#handler-oninvalid">oninvalid</a></code></li>
    <li><code title="handler-onkeydown"><a href="#handler-onkeydown">onkeydown</a></code></li>
@@ -13625,16 +13618,16 @@
   &lt;legend&gt;Work out the price of your car&lt;/legend&gt;
   &lt;p&gt;Base cost: &pound;52000.&lt;/p&gt;
   &lt;p&gt;Select additional options:&lt;/p&gt;
-  &lt;ul&gt;
+  &lt;ul onchange="calculate(form)"&gt;
    &lt;li&gt;&lt;label&gt;&lt;input type=checkbox name=brakes&gt; Ceramic brakes (&pound;1000)&lt;/label&gt;&lt;/li&gt;
    &lt;li&gt;&lt;label&gt;&lt;input type=checkbox name=radio&gt; Satellite radio (&pound;2500)&lt;/label&gt;&lt;/li&gt;
    &lt;li&gt;&lt;label&gt;&lt;input type=checkbox name=turbo&gt; Turbo charger (&pound;5000)&lt;/label&gt;&lt;/li&gt;
    &lt;li&gt;&lt;label&gt;&lt;input type=checkbox name=sticker&gt; "XZ" sticker (&pound;250)&lt;/label&gt;&lt;/li&gt;
   &lt;/ul&gt;
-  &lt;p&gt;Total: &pound;&lt;output name=result onformchange="calculate(form)"&gt;&lt;/output&gt;&lt;/p&gt;
+  &lt;p&gt;Total: &pound;&lt;output name=result&gt;&lt;/output&gt;&lt;/p&gt;
  &lt;/fieldset&gt;
  &lt;script&gt;
-  document.forms.pricecalc.dispatchFormChange();
+  calculate(document.forms.pricecalc);
  &lt;/script&gt;
 &lt;/form&gt;</pre>
 
@@ -29860,9 +29853,6 @@
   void <a href="#dom-form-submit" title="dom-form-submit">submit</a>();
   void <a href="#dom-form-reset" title="dom-form-reset">reset</a>();
   boolean <a href="#dom-form-checkvalidity" title="dom-form-checkValidity">checkValidity</a>();
-
-  void <a href="#dom-form-dispatchforminput" title="dom-form-dispatchFormInput">dispatchFormInput</a>();
-  void <a href="#dom-form-dispatchformchange" title="dom-form-dispatchFormChange">dispatchFormChange</a>();
 };</pre>
    </dd>
   </dl><p>The <code><a href="#the-form-element">form</a></code> element <a href="#represents">represents</a> a
@@ -29965,22 +29955,6 @@
 
    </dd>
 
-   <dt><var title="">form</var> . <code title="dom-form-dispatchFormInput"><a href="#dom-form-dispatchforminput">dispatchFormInput</a></code>()</dt>
-
-   <dd>
-
-    <p>Dispatches a <code title="event-forminput">forminput</code> event at all the form controls.</p>
-
-   </dd>
-
-   <dt><var title="">form</var> . <code title="dom-form-dispatchFormChange"><a href="#dom-form-dispatchformchange">dispatchFormChange</a></code>()</dt>
-
-   <dd>
-
-    <p>Dispatches a <code title="event-formchange">formchange</code> event at all the form controls.</p>
-
-   </dd>
-
   </dl><div class="impl">
 
   <p>The <dfn id="dom-form-autocomplete" title="dom-form-autocomplete"><code>autocomplete</code></dfn> IDL
@@ -30103,14 +30077,6 @@
   if the constraint validation return a <i>positive</i> result, and
   false if it returned a <i>negative</i> result.</p>
 
-  <p>If the <dfn id="dom-form-dispatchforminput" title="dom-form-dispatchFormInput"><code>dispatchFormInput()</code></dfn>
-  method is invoked, the user agent must <a href="#broadcast-forminput-events">broadcast <code title="event-forminput">forminput</code> events</a> from the
-  <code><a href="#the-form-element">form</a></code> element.</p>
-
-  <p>If the <dfn id="dom-form-dispatchformchange" title="dom-form-dispatchFormChange"><code>dispatchFormChange()</code></dfn>
-  method is invoked, the user agent must <a href="#broadcast-formchange-events">broadcast <code title="event-formchange">formchange</code> events</a> from the
-  <code><a href="#the-form-element">form</a></code> element.</p>
-
   </div><div class="example">
 
    <p>This example shows two search forms:</p>
@@ -31863,11 +31829,9 @@
    selected a left-to-right writing direction, and "<code title="attr-dir-rtl"><a href="#attr-dir-rtl">rtl</a></code>" if the user selected a
    right-to-left writing direction.</li>
 
-   <li><p><a href="#queue-a-task">Queue a task</a> to first <a href="#fire-a-simple-event">fire a simple
-   event</a> that bubbles named <code title="event-input">input</code> at the <code><a href="#the-input-element">input</a></code> element,
-   and to then <a href="#broadcast-forminput-events">broadcast <code title="event-forminput">forminput</code> events</a> from the
-   <code><a href="#the-input-element">input</a></code> element's <a href="#form-owner">form owner</a>, if
-   any.</li>
+   <li><p><a href="#queue-a-task">Queue a task</a> to <a href="#fire-a-simple-event">fire a simple
+   event</a> that bubbles named <code title="event-input">input</code> at the <code><a href="#the-input-element">input</a></code>
+   element.</li>
 
   </ol></div><p>The <code title="attr-input-value"><a href="#attr-input-value">value</a></code> attribute, if
   specified, must have a value that contains no U+000A LINE FEED (LF)
@@ -33662,10 +33626,9 @@
   the element's <code title="dom-input-indeterminate"><a href="#dom-input-indeterminate">indeterminate</a></code> IDL attribute
   back to the values they had before the <a href="#pre-click-activation-steps">pre-click activation
   steps</a> were run. The <a href="#activation-behavior">activation behavior</a> is to
-  <a href="#fire-a-simple-event">fire a simple event</a> that bubbles named <code title="event-change">change</code> at the element<!-- It's not
+  <a href="#fire-a-simple-event">fire a simple event</a> that bubbles named <code title="event-change">change</code> at the element. <!-- It's not
   cancelable. Once this fires, the control is checked, end of story.
-  -->, then <a href="#broadcast-formchange-events">broadcast <code title="event-formchange">formchange</code> events</a> from the
-  element's <a href="#form-owner">form owner</a>, if any.</p>
+  --></p>
 
   <p><strong>Constraint validation</strong>: If the element is <i title="concept-input-required"><a href="#concept-input-required">required</a></i> and its <a href="#concept-fe-checked" title="concept-fe-checked">checkedness</a> is false, then the
   element is <a href="#suffering-from-being-missing">suffering from being missing</a>.</p>
@@ -33782,10 +33745,9 @@
   true. The <a href="#canceled-activation-steps">canceled activation steps</a> consist of setting
   the element's <a href="#concept-fe-checked" title="concept-fe-checked">checkedness</a> to
   false. The <a href="#activation-behavior">activation behavior</a> is to <a href="#fire-a-simple-event">fire a
-  simple event</a> that bubbles named <code title="event-change">change</code> at the element<!-- It's not
-  cancelable. Once this fires, the control is checked, end of
-  story. -->, then <a href="#broadcast-formchange-events">broadcast <code title="event-formchange">formchange</code> events</a> from the
-  element's <a href="#form-owner">form owner</a>, if any.</p>
+  simple event</a> that bubbles named <code title="event-change">change</code> at the element. <!-- It's not
+  cancelable. Once this fires, the control is checked, end of story.
+  -->.</p>
 
   <p><strong>Constraint validation</strong>: If the element is <i title="concept-input-required"><a href="#concept-input-required">required</a></i> and all of the
   <code><a href="#the-input-element">input</a></code> elements in the <i><a href="#radio-button-group">radio button group</a></i> have a
@@ -34749,7 +34711,8 @@
    password field and this third field.</p>
 
    <pre>&lt;h1&gt;Create new account&lt;/h1&gt;
-&lt;form action="/newaccount" method=post&gt;
+&lt;form action="/newaccount" method=post
+      oninput="up2.setCustomValidity(up2.value != up.value ? 'Passwords do not match.' : '')"&gt;
  &lt;p&gt;
   &lt;label for="username"&gt;E-mail address:&lt;/label&gt;
   &lt;input id="username" type=email required name=un&gt;
@@ -34758,7 +34721,7 @@
   &lt;input id="password1" type=password required name=up&gt;
  &lt;p&gt;
   &lt;label for="password2"&gt;Confirm password:&lt;/label&gt;
-  &lt;input id="password2" type=password onforminput="setCustomValidity(value != password1.value ? 'Passwords do not match.' : '')"&gt;
+  &lt;input id="password2" type=password name=up2&gt;
  &lt;p&gt;
   &lt;input type=submit value="Create account"&gt;
 &lt;/form&gt;</pre>
@@ -35332,16 +35295,14 @@
 
   <p>When the <dfn id="event-input-input" title="event-input-input"><code>input</code></dfn>
   event applies, any time the user causes the element's <a href="#concept-fe-value" title="concept-fe-value">value</a> to change, the user agent must
-  <a href="#queue-a-task">queue a task</a> to first <a href="#fire-a-simple-event">fire a simple event</a>
-  that bubbles named <code title="event-input">input</code> at the
-  <code><a href="#the-input-element">input</a></code> element, and then to <a href="#broadcast-forminput-events">broadcast <code title="event-forminput">forminput</code> events</a> from the
-  <code><a href="#the-input-element">input</a></code> element's <a href="#form-owner">form owner</a>, if any. User
-  agents may wait for a suitable break in the user's interaction
-  before queuing the task; for example, a user agent could wait for
-  the user to have not hit a key for 100ms, so as to only fire the
-  event when the user pauses, instead of continuously for each
-  keystroke.</p> <!-- same text is present in the <textarea> section
-  -->
+  <a href="#queue-a-task">queue a task</a> to <a href="#fire-a-simple-event">fire a simple event</a> that
+  bubbles named <code title="event-input">input</code> at the
+  <code><a href="#the-input-element">input</a></code> element. User agents may wait for a suitable
+  break in the user's interaction before queuing the task; for
+  example, a user agent could wait for the user to have not hit a key
+  for 100ms, so as to only fire the event when the user pauses,
+  instead of continuously for each keystroke.</p> <!-- same text is
+  present in the <textarea> section -->
 
   <p class="example">Examples of a user changing the element's <a href="#concept-fe-value" title="concept-fe-value">value</a> would include the user typing
   into a text field, pasting a new value into the field, or undoing an
@@ -35355,10 +35316,9 @@
   defined but uses a user interface that involves an explicit commit
   action, then any time the user commits a change to the element's
   <a href="#concept-fe-value" title="concept-fe-value">value</a> or list of <a href="#concept-input-type-file-selected" title="concept-input-type-file-selected">selected files</a>, the
-  user agent must <a href="#queue-a-task">queue a task</a> to first <a href="#fire-a-simple-event">fire a
-  simple event</a> that bubbles named <code title="event-change">change</code> at the <code><a href="#the-input-element">input</a></code>
-  element, and then to <a href="#broadcast-formchange-events">broadcast <code title="event-formchange">formchange</code> events</a> from the
-  <code><a href="#the-input-element">input</a></code> element's <a href="#form-owner">form owner</a>, if any.</p>
+  user agent must <a href="#queue-a-task">queue a task</a> to <a href="#fire-a-simple-event">fire a simple
+  event</a> that bubbles named <code title="event-change">change</code> at the <code><a href="#the-input-element">input</a></code>
+  element.</p>
 
   <p class="example">An example of a user interface with a commit
   action would be a <a href="#file-upload-state" title="attr-input-type-file">File
@@ -35383,19 +35343,11 @@
    event</a> that bubbles named <code title="event-input">input</code> at the <code><a href="#the-input-element">input</a></code>
    element.</li>
 
-   <li>If the <code title="event-input-input"><a href="#event-input-input">input</a></code> event
-   applies, <a href="#queue-a-task">queue a task</a> to <a href="#broadcast-forminput-events">broadcast <code title="event-forminput">forminput</code> events</a> from the
-   <code><a href="#the-input-element">input</a></code> element's <a href="#form-owner">form owner</a>, if any.</li>
-
    <li>If the <code title="event-input-change"><a href="#event-input-change">change</a></code> event
    applies, <a href="#queue-a-task">queue a task</a> to <a href="#fire-a-simple-event">fire a simple
    event</a> that bubbles named <code title="event-change">change</code> at the <code><a href="#the-input-element">input</a></code>
    element.</li>
 
-   <li>If the <code title="event-input-change"><a href="#event-input-change">change</a></code> event
-   applies, <a href="#queue-a-task">queue a task</a> to <a href="#broadcast-formchange-events">broadcast <code title="event-formchange">formchange</code> events</a> from the
-   <code><a href="#the-input-element">input</a></code> element's <a href="#form-owner">form owner</a>, if any.</li>
-
   </ol><p class="note">In addition, when the <code title="event-input-change"><a href="#event-input-change">change</a></code> event applies, <code title="event-change">change</code> events can also be fired as part
   of the element's <a href="#activation-behavior">activation behavior</a> and as part of the
   <a href="#unfocusing-steps">unfocusing steps</a>.</p>
@@ -35672,11 +35624,10 @@
   <code title="event-click"><a href="#event-click">click</a></code> event), the user agent must
   set the <a href="#concept-option-selectedness" title="concept-option-selectedness">selectedness</a> of the
   picked <code><a href="#the-option-element">option</a></code> element to true and then <a href="#queue-a-task">queue a
-  task</a> to first <a href="#fire-a-simple-event">fire a simple event</a> that bubbles
-  named <code title="event-change">change</code> at the
-  <code><a href="#the-select-element">select</a></code> element, using the <a href="#user-interaction-task-source">user interaction task
-  source</a> as the task source, and then to <a href="#broadcast-formchange-events">broadcast <code title="event-formchange">formchange</code> events</a> from the
-  element's <a href="#form-owner">form owner</a>.</p>
+  task</a> to <a href="#fire-a-simple-event">fire a simple event</a> that bubbles named
+  <code title="event-change">change</code> at the <code><a href="#the-select-element">select</a></code>
+  element, using the <a href="#user-interaction-task-source">user interaction task source</a> as the
+  task source.</p>
 
   <p>If the <code title="attr-select-multiple"><a href="#attr-select-multiple">multiple</a></code>
   attribute is absent, whenever an <code><a href="#the-option-element">option</a></code> element in the
@@ -35697,11 +35648,10 @@
   interaction event spec point --> is queued (e.g. before the <code title="event-click"><a href="#event-click">click</a></code> event), the user agent must set the
   <a href="#concept-option-selectedness" title="concept-option-selectedness">selectedness</a> of
   that <code><a href="#the-option-element">option</a></code> element to false and then <a href="#queue-a-task">queue a
-  task</a> to first <a href="#fire-a-simple-event">fire a simple event</a> that bubbles
-  named <code title="event-change">change</code> at the
-  <code><a href="#the-select-element">select</a></code> element, using the <a href="#user-interaction-task-source">user interaction task
-  source</a> as the task source, and then to <a href="#broadcast-formchange-events">broadcast <code title="event-formchange">formchange</code> events</a> from the
-  element's <a href="#form-owner">form owner</a>.</p>
+  task</a> to <a href="#fire-a-simple-event">fire a simple event</a> that bubbles named
+  <code title="event-change">change</code> at the <code><a href="#the-select-element">select</a></code>
+  element, using the <a href="#user-interaction-task-source">user interaction task source</a> as the
+  task source.</p>
 
   <p>If the <code title="attr-select-multiple"><a href="#attr-select-multiple">multiple</a></code>
   attribute is absent and the element's <a href="#concept-select-size" title="concept-select-size">display size</a> is 1, then whenever
@@ -35723,11 +35673,10 @@
   more <code><a href="#the-option-element">option</a></code> elements being changed by the user, and
   before the relevant user interaction event <!-- interaction event
   spec point --> is queued (e.g. before a related <code title="event-click"><a href="#event-click">click</a></code> event), the user agent must
-  <a href="#queue-a-task">queue a task</a> to first <a href="#fire-a-simple-event">fire a simple event</a>
-  that bubbles named <code title="event-change">change</code> at the
+  <a href="#queue-a-task">queue a task</a> to <a href="#fire-a-simple-event">fire a simple event</a> that
+  bubbles named <code title="event-change">change</code> at the
   <code><a href="#the-select-element">select</a></code> element, using the <a href="#user-interaction-task-source">user interaction task
-  source</a> as the task source, and then to <a href="#broadcast-formchange-events">broadcast <code title="event-formchange">formchange</code> events</a> from the
-  element's <a href="#form-owner">form owner</a>.</p>
+  source</a> as the task source.</p>
 
   <p>The <a href="#concept-form-reset-control" title="concept-form-reset-control">reset
   algorithm</a> for <code><a href="#the-select-element">select</a></code> elements is to go through
@@ -36360,15 +36309,14 @@
 
   <p>When a <code><a href="#the-textarea-element">textarea</a></code> is <a href="#concept-textarea-mutable" title="concept-textarea-mutable">mutable</a>, its <a href="#concept-textarea-raw-value" title="concept-textarea-raw-value">raw value</a> should be
   editable by the user. Any time the user causes the element's <a href="#concept-textarea-raw-value" title="concept-textarea-raw-value">raw value</a> to change, the
-  user agent must <a href="#queue-a-task">queue a task</a> to first <a href="#fire-a-simple-event">fire a
-  simple event</a> that bubbles named <code title="event-input">input</code> at the <code><a href="#the-textarea-element">textarea</a></code>
-  element, and then to <a href="#broadcast-forminput-events">broadcast <code title="event-forminput">forminput</code> events</a> from the
-  <code><a href="#the-textarea-element">textarea</a></code> element's <a href="#form-owner">form owner</a>. User agents
-  may wait for a suitable break in the user's interaction before
-  queuing the task; for example, a user agent could wait for the user
-  to have not hit a key for 100ms, so as to only fire the event when
-  the user pauses, instead of continuously for each keystroke.</p>
-  <!-- same text is present in the <input> section -->
+  user agent must <a href="#queue-a-task">queue a task</a> to <a href="#fire-a-simple-event">fire a simple
+  event</a> that bubbles named <code title="event-input">input</code> at the <code><a href="#the-textarea-element">textarea</a></code>
+  element. User agents may wait for a suitable break in the user's
+  interaction before queuing the task; for example, a user agent could
+  wait for the user to have not hit a key for 100ms, so as to only
+  fire the event when the user pauses, instead of continuously for
+  each keystroke.</p> <!-- same text is present in the <input> section
+  -->
 
   <p>A <code><a href="#the-textarea-element">textarea</a></code> element has a <dfn id="concept-textarea-dirty" title="concept-textarea-dirty">dirty value flag</dfn>, which must be
   initially set to false, and must be set to true whenever the user
@@ -36399,11 +36347,9 @@
    selected a left-to-right writing direction, and "<code title="attr-dir-rtl"><a href="#attr-dir-rtl">rtl</a></code>" if the user selected a
    right-to-left writing direction.</li>
 
-   <li><p><a href="#queue-a-task">Queue a task</a> to first <a href="#fire-a-simple-event">fire a simple
+   <li><p><a href="#queue-a-task">Queue a task</a> to <a href="#fire-a-simple-event">fire a simple
    event</a> that bubbles named <code title="event-input">input</code> at the <code><a href="#the-textarea-element">textarea</a></code>
-   element, and to then <a href="#broadcast-forminput-events">broadcast <code title="event-forminput">forminput</code> events</a> from the
-   <code><a href="#the-textarea-element">textarea</a></code> element's <a href="#form-owner">form owner</a>, if
-   any.</li>
+   element.</li>
 
   </ol></div><p>The <dfn id="attr-textarea-cols" title="attr-textarea-cols"><code>cols</code></dfn>
   attribute specifies the expected maximum number of characters per
@@ -37006,10 +36952,10 @@
    <p>A simple calculator could use <code><a href="#the-output-element">output</a></code> for its
    display of calculated results:</p>
 
-   <pre>&lt;form onsubmit="return false"&gt;
+   <pre>&lt;form onsubmit="return false" oninput="o.value = a.valueAsNumber + b.valueAsNumber"&gt;
  &lt;input name=a type=number step=any&gt; +
  &lt;input name=b type=number step=any&gt; =
- &lt;output onforminput="value = a.valueAsNumber + b.valueAsNumber"&gt;&lt;/output&gt;
+ &lt;output name=o&gt;&lt;/output&gt;
 &lt;/form&gt;</pre>
 
   </div><h4 id="the-progress-element"><span class="secno">4.10.16 </span>The <dfn><code>progress</code></dfn> element</h4><p class="XXX annotation"><span><a href="http://www.w3.org/html/wg/tracker/issues/96">ISSUE-96</a> (progress) blocks progress to Last Call</span><dl class="element"><dt>Categories</dt>
@@ -39182,7 +39128,7 @@
   <a href="#fire-a-simple-event">fire a simple event</a> named <code title="event-reset">reset</code>, that is cancelable, at <var title="">form</var>, and then, if that event is not canceled, must
   invoke the <a href="#concept-form-reset-control" title="concept-form-reset-control">reset
   algorithm</a> of each <a href="#category-reset" title="category-reset">resettable
-  element</a> whose <a href="#form-owner">form owner</a> is <var title="">form</var>, and <a href="#broadcast-formchange-events">broadcast <code title="event-formchange">formchange</code> events</a> from <var title="">form</var>.</p>
+  element</a> whose <a href="#form-owner">form owner</a> is <var title="">form</var>.</p>
 
   <p>Each <a href="#category-reset" title="category-reset">resettable element</a>
   defines its own <dfn id="concept-form-reset-control" title="concept-form-reset-control">reset
@@ -39191,25 +39137,7 @@
   e.g., do not cause <code title="event-input">input</code> events to
   fire).</p>
 
-  </div><div class="impl">
-
-  <h4 id="event-dispatch"><span class="secno">4.10.24 </span>Event dispatch</h4>
-
-  <p>When the user agent is to <dfn id="broadcast-forminput-events">broadcast <code title="event-forminput">forminput</code> events</dfn> or
-  <dfn id="broadcast-formchange-events">broadcast <code title="event-formchange">formchange</code>
-  events</dfn> from a <code><a href="#the-form-element">form</a></code> element <var title="">form</var>, it must run the following steps:</p>
-
-  <ol><li><p>Let <var title="">controls</var> be a list of all the <a href="#category-reset" title="category-reset">resettable elements</a> whose <a href="#form-owner">form
-   owner</a> is <var title="">form</var>.</li>
-
-   <li>If the user agent was to <a href="#broadcast-forminput-events">broadcast <code title="event-forminput">forminput</code> events</a>, let <var title="">event name</var> be <code title="event-forminput">forminput</code>. Otherwise the user agent
-   was to <a href="#broadcast-formchange-events">broadcast <code title="event-formchange">formchange</code> events</a>; let <var title="">event name</var> be <code title="event-formchange">formchange</code>.</li>
-
-   <li><p>For each element in <var title="">controls</var>, in
-   <a href="#tree-order">tree order</a>, <a href="#fire-a-simple-event">fire a simple event</a> named
-   <var title="">event name</var> at the element.</li>
-
-  </ol></div><h3 id="interactive-elements"><span class="secno">4.11 </span>Interactive elements</h3><h4 id="the-details-element"><span class="secno">4.11.1 </span>The <dfn><code>details</code></dfn> element</h4><dl class="element"><dt>Categories</dt>
+  </div><h3 id="interactive-elements"><span class="secno">4.11 </span>Interactive elements</h3><h4 id="the-details-element"><span class="secno">4.11.1 </span>The <dfn><code>details</code></dfn> element</h4><dl class="element"><dt>Categories</dt>
    <dd><a href="#flow-content">Flow content</a>.</dd>
    <dd><a href="#sectioning-root">Sectioning root</a>.</dd>
    <dd><a href="#interactive-content">Interactive content</a>.</dd>
@@ -42544,8 +42472,6 @@
            attribute <a href="#function">Function</a> <a href="#handler-onended" title="handler-onended">onended</a>;
            attribute <a href="#function">Function</a> <a href="#handler-window-onerror" title="handler-window-onerror">onerror</a>;
            attribute <a href="#function">Function</a> <a href="#handler-window-onfocus" title="handler-window-onfocus">onfocus</a>;
-           attribute <a href="#function">Function</a> <a href="#handler-onformchange" title="handler-onformchange">onformchange</a>;
-           attribute <a href="#function">Function</a> <a href="#handler-onforminput" title="handler-onforminput">onforminput</a>;
            attribute <a href="#function">Function</a> <a href="#handler-window-onhashchange" title="handler-window-onhashchange">onhashchange</a>;
            attribute <a href="#function">Function</a> <a href="#handler-oninput" title="handler-oninput">oninput</a>;
            attribute <a href="#function">Function</a> <a href="#handler-oninvalid" title="handler-oninvalid">oninvalid</a>;
@@ -48802,8 +48728,6 @@
     <tr><td><dfn id="handler-ondurationchange" title="handler-ondurationchange"><code>ondurationchange</code></dfn> <td> <code title="event-media-durationchange"><a href="#event-media-durationchange">durationchange</a></code>
     <tr><td><dfn id="handler-onemptied" title="handler-onemptied"><code>onemptied</code></dfn> <td> <code title="event-media-emptied"><a href="#event-media-emptied">emptied</a></code>
     <tr><td><dfn id="handler-onended" title="handler-onended"><code>onended</code></dfn> <td> <code title="event-media-ended"><a href="#event-media-ended">ended</a></code>
-    <tr><td><dfn id="handler-onformchange" title="handler-onformchange"><code>onformchange</code></dfn> <td> <code title="event-formchange">formchange</code>
-    <tr><td><dfn id="handler-onforminput" title="handler-onforminput"><code>onforminput</code></dfn> <td> <code title="event-forminput">forminput</code>
     <tr><td><dfn id="handler-oninput" title="handler-oninput"><code>oninput</code></dfn> <td> <code title="event-input">input</code>
     <tr><td><dfn id="handler-oninvalid" title="handler-oninvalid"><code>oninvalid</code></dfn> <td> <code title="event-invalid">invalid</code>
     <tr><td><dfn id="handler-onkeydown" title="handler-onkeydown"><code>onkeydown</code></dfn> <td> <code title="event-keydown">keydown</code> <!-- widely used -->
@@ -50629,9 +50553,7 @@
    element, and the element does not have a defined <a href="#activation-behavior">activation
    behavior</a>, and the user has changed the element's <a href="#concept-fe-value" title="concept-fe-value">value</a> or its list of <a href="#concept-input-type-file-selected" title="concept-input-type-file-selected">selected files</a>
    while the control was focused without committing that change, then
-   <a href="#fire-a-simple-event">fire a simple event</a> that bubbles named <code title="event-change">change</code> at the element, then
-   <a href="#broadcast-formchange-events">broadcast <code title="event-formchange">formchange</code>
-   events</a> at the element's <a href="#form-owner">form owner</a>.</p>
+   <a href="#fire-a-simple-event">fire a simple event</a> that bubbles named <code title="event-change">change</code> at the element.</p>
 
    <li><p>Unfocus the element.</li>
 
@@ -70535,16 +70457,6 @@
      <td> <code title="event-focus">focus</code> event handler
      <td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
 
-    <tr><th id="ix-handler-onformchange"> <code title="">onformchange</code>
-     <td> <a href="#handler-onformchange" title="handler-onformchange">HTML elements</a>
-     <td> <code title="event-formchange">formchange</code> event handler
-     <td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
-
-    <tr><th id="ix-handler-onforminput"> <code title="">onforminput</code>
-     <td> <a href="#handler-onforminput" title="handler-onforminput">HTML elements</a>
-     <td> <code title="event-forminput">forminput</code> event handler
-     <td> <a href="#event-handler-content-attributes" title="event handler content attributes">Event handler content attribute</a>
-
     <tr><th id="ix-handler-window-onhashchange"> <code title="">onhashchange</code>
      <td> <code title="handler-window-onhashchange"><a href="#handler-window-onhashchange">body</a></code>
      <td> <code title="event-hashchange"><a href="#event-hashchange">hashchange</a></code> event handler for <code><a href="#window">Window</a></code> object
@@ -71169,14 +71081,6 @@
      <td> <code><a href="#event">Event</a></code>
      <td> Fired at nodes gaining focus
 
-    <tr><td> <code title="event-formchange">formchange</code>
-     <td> <code><a href="#event">Event</a></code>
-     <td> Fired at form controls when the user commits a value change to a control on the form
-
-    <tr><td> <code title="event-forminput">forminput</code>
-     <td> <code><a href="#event">Event</a></code>
-     <td> Fired at form controls when the user changes the value of a control on the form
-
     <tr><td> <code title="event-hashchange"><a href="#event-hashchange">hashchange</a></code>
      <td> <code><a href="#hashchangeevent">HashChangeEvent</a></code>
      <td> Fired at the <code><a href="#window">Window</a></code> when the fragment identifier part of <a href="#the-document-s-current-address">the document's current address</a> changes
Received on Thursday, 3 March 2011 23:23:42 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 3 March 2011 23:23:43 GMT