<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><section><h1>form 要素 onsubmit 属性 (HTML, XHTML 1)</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> の <code class="HTMLe"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">form</anchor></code> 要素の
<dfn><code class="HTMLa">onsubmit</code> 属性</dfn>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォーム</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提出</anchor>される時に発生する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">事象</anchor>に関する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内在事象</anchor>属性です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> 仕様書:<ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML 4</anchor><ul><li><code class="HTMLa">onsubmit</code> 属性
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="HTML4:&quot;interact/scripts.html#adef-onsubmit&quot;">IW:HTML4:&quot;interact/scripts.html#adef-onsubmit&quot;</anchor-external></li></ul></li></ul></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end>:\
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor> <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2007-06-26 18:26:20 +00:00</weak>)</p><form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form><section><h1>代替</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 内在事象属性は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表現と構造の分離</anchor>の原則に反するので、
好ましくないと考える人もいます。また、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM 0</anchor>
に基づく古い設計です。</p><p>代わりに、 <code class="HTMLe"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">script</anchor></code> 要素などにより関連付けたスクリプト内で
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM 2</anchor> 以上の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">事象</anchor>に関するメソッド等が利用できます。
DOM 水準 2 や DOM 水準 3 はこの属性に対応する
DOM の事象 <code class="DOM"><var>ev:</var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">submit</anchor></code> を用意しています。</p><form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form></section><section><h1>属性値</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> この属性の値は <code class="SGML">%<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Script</anchor></code> です。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor>
的には <code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CDATA</anchor></code> です。
自称が発生したときに実行するスクリプトの code
を記述します。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト言語</anchor>は、
<code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Script-Type</anchor></code> によります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> この属性は省略可能です。</p><form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form></section><section><h1>他との関係</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> この属性に対応する DOM の事象は <code class="DOM"><var>ev:</var><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">submit</anchor></code>
です。そちらもあわせてごらんください。</p><form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end>
<code class="HTML example code" xml:lang="en"></code>
onsubmit=&quot;<pre>  submit ();
  alert ('Submitted?');
  return false;
&quot;</pre></p><p>のようなことをすると、なぜか
<code class="HTML example code" xml:lang="en"></code>
onsubmit=&quot;<pre>  alert ('Submitted?');
&quot;</pre></p><p>のような振る舞いになります。
(Firefox 0.9, WinIE 6, Opera 8)
]PRE]
]PRE]</p><p>テスト:
<cite xml:lang="en"><code class="DOMm">submit()</code> Method in <code class="DOM">submit</code> Event</cite> 
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://suika.suikawiki.org/~wakaba/-temp/test/html/form/event/submit-submit?text1=errrr">https://suika.suikawiki.org/~wakaba/-temp/test/html/form/event/submit-submit?text1=errrr</anchor-external></p><p>(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor> [sage])</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end>
<code class="DOMm" xml:lang="en">submit</code> の後に <code class="DOMm" xml:lang="en">reset</code>
を実行してみたらどうなのかと言えば、
リセット前のフォーム・データが提出されています。</p><p><cite xml:lang="en">submit() Method Followed by reset() Method in submit Event</cite> 
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://suika.suikawiki.org/~wakaba/-temp/test/html/form/event/submit-submit-reset">https://suika.suikawiki.org/~wakaba/-temp/test/html/form/event/submit-submit-reset</anchor-external></p><p>逆に <code class="DOMm" xml:lang="en">reset</code> してから <code class="DOMm" xml:lang="en">submit</code>
してみると、リセット後のフォーム・データが提出されています。</p><p><cite xml:lang="en">reset() Method Followed by submit() Method in submit Event</cite> 
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://suika.suikawiki.org/~wakaba/-temp/test/html/form/event/submit-reset-submit">https://suika.suikawiki.org/~wakaba/-temp/test/html/form/event/submit-reset-submit</anchor-external></p><p>(Firefox, WinIE 6, Opera 8)
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor> [sage])</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end>
<code class="DOMm">submit</code> の時点で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォーム・データ集合</anchor>が用意されて、
スクリプトを全部実行し終わってから提出・頁遷移するということでしょうか。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor> [sage])</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end>
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;7</anchor-internal>-9 ではうっかりしていましたが、 <code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">alert</anchor></code>
を使ったのはやばかったですかね? それのせいで順番が入れ替わることもあるかも。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor> [sage])</p><form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form></section></section><section><h1>メモ</h1></section></body></html>