mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-06-08 15:04:05 +08:00
209 lines
16 KiB
HTML
209 lines
16 KiB
HTML
<article class="" id="post-">
|
||
<header class="entry-header">
|
||
<h1 class="entry-title">.submit()</h1>
|
||
<div class="entry-meta">
|
||
所属分类:<span class="category"><a href="/category/events/">事件</a> > <a href="/category/events/form-events/">表单事件</a></span><span class="category-divider"> | </span><span class="category"><a href="/category/forms/">表单</a></span>
|
||
<span class="pull-right">英文文档:<a href="https://api.jquery123.com/submit/" target="_blank">.submit()</a></span>
|
||
</div><!-- .entry-meta -->
|
||
</header><!-- .entry-header -->
|
||
<!-- .entry-header -->
|
||
<div class="entry-content">
|
||
<article class="entry method" id="submit1"><h2 class="section-title">
|
||
<span class="name">.submit( handler(eventObject) )</span><span class="returns">返回: <a href="/Types/#jQuery">jQuery</a></span>
|
||
</h2>
|
||
<div class="entry-wrapper">
|
||
<p class="desc"><strong>描述: </strong>为 JavaScript 的 "submit" 事件绑定一个处理函数,或者触发元素上的该事件。</p>
|
||
<ul class="signatures">
|
||
<li class="signature" id="submit-handlereventObject">
|
||
<h4 class="name">
|
||
<span class="version-details">添加的版本: <a href="/category/version/1.0/">1.0</a></span>.submit( handler(eventObject) )</h4>
|
||
<ul><li>
|
||
<div><strong>handler(eventObject)</strong></div>
|
||
<div>类型: <a href="/Types/#Function">Function</a>()</div>
|
||
<div>每次事件触发时会执行的函数。</div>
|
||
</li></ul>
|
||
</li>
|
||
<li class="signature" id="submit-eventData-handlereventObject">
|
||
<h4 class="name">
|
||
<span class="version-details">添加的版本: <a href="/category/version/1.4.3/">1.4.3</a></span>.submit( [eventData ], handler(eventObject) )</h4>
|
||
<ul>
|
||
<li>
|
||
<div><strong>eventData</strong></div>
|
||
<div>类型: <a href="/Types/#PlainObject">PlainObject</a>
|
||
</div>
|
||
<div>一个对象,它包含的数据键值对映射将被传递给事件处理程序。</div>
|
||
</li>
|
||
<li>
|
||
<div><strong>handler(eventObject)</strong></div>
|
||
<div>类型: <a href="/Types/#Function">Function</a>()</div>
|
||
<div>每次事件触发时会执行的函数。</div>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li class="signature" id="submit">
|
||
<h4 class="name">
|
||
<span class="version-details">添加的版本: <a href="/category/version/1.0/">1.0</a></span>.submit()</h4>
|
||
<ul><li><div class="null-signature">这个方法不接受任何参数。</div></li></ul>
|
||
</li>
|
||
</ul>
|
||
<div class="longdesc" id="entry-longdesc">
|
||
<p>这个函数的前两个用法是 <code>.bind('submit', handler)</code> 的快捷方式,第3个不带参数的用法是 <code>.trigger('submit')</code> 的快捷方式。</p>
|
||
<p>当用户试图提交表单时,就会在这个表单元素上触发<code>submit</code>事件。它只能绑定在<code><form></code>元素上。以下几种情况会导致表单被提交:用户点击了<code><input type="submit"></code>, <code><input type="image"></code>, 或者 <code><button type="submit"></code>,或者当某些表单元素获取焦点时,敲击<kbd>Enter</kbd>(回车键),都可以提交。</p>
|
||
<blockquote><p>根据不同的浏览器,Enter 键可能会导致表单被提交,如果这个表单只有一个文本框或只有一个 submit 按钮的话。界面不应该依赖于这个键的特殊行为,除非已经使用了 keypress 事件来监听 Enter 键的按下。</p></blockquote>
|
||
<p>举例来说,请看下面的HTML:</p>
|
||
<div class="syntaxhighlighter xml nogutter">
|
||
<table>
|
||
<tbody>
|
||
<tr>
|
||
<td class="gutter">
|
||
<div class="line n1">1</div>
|
||
<div class="line n2">2</div>
|
||
<div class="line n3">3</div>
|
||
<div class="line n4">4</div>
|
||
<div class="line n5">5</div>
|
||
<div class="line n6">6</div>
|
||
<div class="line n7">7</div>
|
||
</td>
|
||
<td class="code">
|
||
<pre><div class="container"><div class="line"><code><span class="tag"><<span class="title">form</span> <span class="attribute">id</span>=<span class="value">"target"</span> <span class="attribute">action</span>=<span class="value">"destination.html"</span>></span></code></div></div><div class="container"><div class="line"><code> <span class="tag"><<span class="title">input</span> <span class="attribute">type</span>=<span class="value">"text"</span> <span class="attribute">value</span>=<span class="value">"Hello there"</span> /></span></code></div></div><div class="container"><div class="line"><code> <span class="tag"><<span class="title">input</span> <span class="attribute">type</span>=<span class="value">"submit"</span> <span class="attribute">value</span>=<span class="value">"Go"</span> /></span></code></div></div><div class="container"><div class="line"><code><span class="tag"></<span class="title">form</span>></span></code></div></div><div class="container"><div class="line"><code><span class="tag"><<span class="title">div</span> <span class="attribute">id</span>=<span class="value">"other"</span>></span></code></div></div><div class="container"><div class="line"><code> Trigger the handler</code></div></div><div class="container"><div class="line"><code><span class="tag"></<span class="title">div</span>></span></code></div></div></pre>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p>这个事件处理程序可以绑定到表单</p>
|
||
<div class="syntaxhighlighter javascript nogutter">
|
||
<table>
|
||
<tbody>
|
||
<tr>
|
||
<td class="gutter">
|
||
<div class="line n1">1</div>
|
||
<div class="line n2">2</div>
|
||
<div class="line n3">3</div>
|
||
<div class="line n4">4</div>
|
||
</td>
|
||
<td class="code">
|
||
<pre><div class="container"><div class="line"><code>$(<span class="string">'#target'</span>).submit(<span class="keyword">function</span>() {</code></div></div><div class="container"><div class="line"><code> alert(<span class="string">'Handler for .submit() called.'</span>);</code></div></div><div class="container"><div class="line"><code> <span class="keyword">return</span> <span class="literal">false</span>;</code></div></div><div class="container"><div class="line"><code>});</code></div></div></pre>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p>现在当表单提交时,警告将被显示。出现这种情况的实际提交之前,所以我们可以通过调用事件对象的<code>.preventDefault()</code>或在处理函数中返回 <code>false</code> 来取消提交:</p>
|
||
<div class="syntaxhighlighter javascript nogutter">
|
||
<table>
|
||
<tbody>
|
||
<tr>
|
||
<td class="gutter">
|
||
<div class="line n1">1</div>
|
||
<div class="line n2">2</div>
|
||
<div class="line n3">3</div>
|
||
</td>
|
||
<td class="code">
|
||
<pre><div class="container"><div class="line"><code>$(<span class="string">'#other'</span>).click(<span class="keyword">function</span>() {</code></div></div><div class="container"><div class="line"><code> $(<span class="string">'#target'</span>).submit();</code></div></div><div class="container"><div class="line"><code>});</code></div></div></pre>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p>这些代码执行后,点击<span class="output">Trigger the handler</span> 同样会警报显示。此外,默认的<code>submit</code>表单上的动作上会被触发,所以表格将被提交。</p>
|
||
<p>在Internet Explorer中,JavaScript的<code>submit</code>事件不会泡沫。但是,依赖 <code>submit</code> 事件代理的脚本,从 jQuery 1.4 开始,可以跨浏览器正常使用。</p>
|
||
</div>
|
||
<h3>Additional Notes(其他注意事项):</h3>
|
||
<div class="longdesc"><ul>
|
||
<li>表单及他们的子元素不应该使元素名称或ID属性冲突,比如<code>submit</code>, <code>length</code>, 或 <code>method</code>。名称冲突可能会导致混乱的失败。对于一个完整的规则列表,并检查这些问题标记,看<a href="http://yura.thinkweb2.com/domlint/">DOMLint</a>。
|
||
</li></ul></div>
|
||
<section class="entry-examples" id="entry-examples"><header><h2 class="underline">例子:</h2></header><div class="entry-example" id="example-0">
|
||
<h4>Example: <span class="desc">如果你想根据一个标识来阻止表单被提交的话,可以像下面这样做:</span>
|
||
</h4>
|
||
<div class="syntaxhighlighter xml ">
|
||
<table>
|
||
<tbody>
|
||
<tr>
|
||
<td class="gutter">
|
||
<div class="line n1">1</div>
|
||
<div class="line n2">2</div>
|
||
<div class="line n3">3</div>
|
||
<div class="line n4">4</div>
|
||
<div class="line n5">5</div>
|
||
<div class="line n6">6</div>
|
||
<div class="line n7">7</div>
|
||
<div class="line n8">8</div>
|
||
<div class="line n9">9</div>
|
||
<div class="line n10">10</div>
|
||
<div class="line n11">11</div>
|
||
<div class="line n12">12</div>
|
||
<div class="line n13">13</div>
|
||
<div class="line n14">14</div>
|
||
<div class="line n15">15</div>
|
||
<div class="line n16">16</div>
|
||
<div class="line n17">17</div>
|
||
<div class="line n18">18</div>
|
||
<div class="line n19">19</div>
|
||
<div class="line n20">20</div>
|
||
<div class="line n21">21</div>
|
||
<div class="line n22">22</div>
|
||
<div class="line n23">23</div>
|
||
<div class="line n24">24</div>
|
||
<div class="line n25">25</div>
|
||
<div class="line n26">26</div>
|
||
<div class="line n27">27</div>
|
||
<div class="line n28">28</div>
|
||
<div class="line n29">29</div>
|
||
<div class="line n30">30</div>
|
||
<div class="line n31">31</div>
|
||
<div class="line n32">32</div>
|
||
<div class="line n33">33</div>
|
||
<div class="line n34">34</div>
|
||
<div class="line n35">35</div>
|
||
</td>
|
||
<td class="code">
|
||
<pre><div class="container"><div class="line"><code><span class="doctype"><!DOCTYPE html></span></code></div></div><div class="container"><div class="line"><code><span class="tag"><<span class="title">html</span>></span></code></div></div><div class="container"><div class="line"><code><span class="tag"><<span class="title">head</span>></span></code></div></div><div class="container"><div class="line"><code> <span class="tag"><<span class="title">style</span>></span><span class="css"></span></code></div></div><div class="container"><div class="line"><code> </code></div></div><div class="container"><div class="line"><code> <span class="tag">p</span> <span class="rules">{ <span class="rule"><span class="attribute">margin</span>:<span class="value"><span class="number">0</span>;</span></span> <span class="rule"><span class="attribute">color</span>:<span class="value">blue;</span></span> <span class="rule">}</span></span></code></div></div><div class="container"><div class="line"><code> <span class="tag">div</span>,<span class="tag">p</span> <span class="rules">{ <span class="rule"><span class="attribute">margin-left</span>:<span class="value"><span class="number">10</span>px;</span></span> <span class="rule">}</span></span></code></div></div><div class="container"><div class="line"><code> <span class="tag">span</span> <span class="rules">{ <span class="rule"><span class="attribute">color</span>:<span class="value">red;</span></span> <span class="rule">}</span></span></code></div></div><div class="container"><div class="line"><code> <span class="tag"></<span class="title">style</span>></span></code></div></div><div class="container"><div class="line"><code> <span class="tag"><<span class="title">script</span> <span class="attribute">src</span>=<span class="value">"https://code.jquery.com/jquery-latest.js"</span>></span><span class="javascript"></span><span class="tag"></<span class="title">script</span>></span></code></div></div><div class="container"><div class="line"><code><span class="tag"></<span class="title">head</span>></span></code></div></div><div class="container"><div class="line"><code><span class="tag"><<span class="title">body</span>></span></code></div></div><div class="container"><div class="line"><code> <span class="tag"><<span class="title">p</span>></span>Type 'correct' to validate.<span class="tag"></<span class="title">p</span>></span></code></div></div><div class="container"><div class="line"><code> <span class="tag"><<span class="title">form</span> <span class="attribute">action</span>=<span class="value">"javascript:alert('success!');"</span>></span></code></div></div><div class="container"><div class="line"><code> <span class="tag"><<span class="title">div</span>></span></code></div></div><div class="container"><div class="line"><code> <span class="tag"><<span class="title">input</span> <span class="attribute">type</span>=<span class="value">"text"</span> /></span></code></div></div><div class="container"><div class="line"><code> </code></div></div><div class="container"><div class="line"><code> <span class="tag"><<span class="title">input</span> <span class="attribute">type</span>=<span class="value">"submit"</span> /></span></code></div></div><div class="container"><div class="line"><code> <span class="tag"></<span class="title">div</span>></span></code></div></div><div class="container"><div class="line"><code> <span class="tag"></<span class="title">form</span>></span></code></div></div><div class="container"><div class="line"><code> <span class="tag"><<span class="title">span</span>></span><span class="tag"></<span class="title">span</span>></span></code></div></div><div class="container"><div class="line"><code><span class="tag"><<span class="title">script</span>></span><span class="javascript"></span></code></div></div><div class="container"><div class="line"><code> </code></div></div><div class="container"><div class="line"><code>$(<span class="string">"form"</span>).submit(<span class="keyword">function</span>() {</code></div></div><div class="container"><div class="line"><code> <span class="keyword">if</span> ($(<span class="string">"input:first"</span>).val() == <span class="string">"correct"</span>) {</code></div></div><div class="container"><div class="line"><code> $(<span class="string">"span"</span>).text(<span class="string">"Validated..."</span>).show();</code></div></div><div class="container"><div class="line"><code> <span class="keyword">return</span> <span class="literal">true</span>;</code></div></div><div class="container"><div class="line"><code> }</code></div></div><div class="container"><div class="line"><code> $(<span class="string">"span"</span>).text(<span class="string">"Not valid!"</span>).show().fadeOut(<span class="number">1000</span>);</code></div></div><div class="container"><div class="line"><code> <span class="keyword">return</span> <span class="literal">false</span>;</code></div></div><div class="container"><div class="line"><code>});</code></div></div><div class="container"><div class="line"><code><span class="tag"></<span class="title">script</span>></span></code></div></div><div class="container"><div class="line"><code> </code></div></div><div class="container"><div class="line"><code><span class="tag"></<span class="title">body</span>></span></code></div></div><div class="container"><div class="line"><code><span class="tag"></<span class="title">html</span>></span></code></div></div></pre>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<h4>Demo:</h4>
|
||
<div class="demo code-demo"></div>
|
||
</div>
|
||
<div class="entry-example" id="example-1">
|
||
<h4>Example: <span class="desc">如果你想根据一个标识来阻止表单被提交的话,可以像下面这样做:</span>
|
||
</h4>
|
||
<div class="syntaxhighlighter javascript ">
|
||
<table>
|
||
<tbody>
|
||
<tr>
|
||
<td class="gutter">
|
||
<div class="line n1">1</div>
|
||
<div class="line n2">2</div>
|
||
<div class="line n3">3</div>
|
||
</td>
|
||
<td class="code">
|
||
<pre><div class="container"><div class="line"><code>$(<span class="string">"form"</span>).submit( <span class="function"><span class="keyword">function</span> <span class="params">()</span> {</span></code></div></div><div class="container"><div class="line"><code> <span class="keyword">return</span> <span class="keyword">this</span>.some_flag_variable;</code></div></div><div class="container"><div class="line"><code>} );</code></div></div></pre>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
<div class="entry-example" id="example-2">
|
||
<h4>Example: <span class="desc">触发页面上第一个表单的提交事件:</span>
|
||
</h4>
|
||
<div class="syntaxhighlighter javascript ">
|
||
<table>
|
||
<tbody>
|
||
<tr>
|
||
<td class="gutter">
|
||
<div class="line n1">1</div>
|
||
</td>
|
||
<td class="code">
|
||
<pre><div class="container"><div class="line"><code>$(<span class="string">"form:first"</span>).submit();</code></div></div></pre>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div></section>
|
||
</div></article> </div>
|
||
</article> |