當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JQuery .submit()用法及代碼示例


用法
.submit( handler ) => jQuery

說明:將事件處理程序綁定到 "submit" JavaScript 事件,或在元素上觸發該事件。

  • 添加的版本:1.0.submit( handler )

    • handler
      類型:Function(Event eventObject)
      每次觸發事件時執行的函數。
  • 添加的版本:1.4.3.submit( [eventData ], handler )

    • eventData
      類型:Anything
      包含將傳遞給事件處理程序的數據的對象。
    • handler
      類型:Function(Event eventObject)
      每次觸發事件時執行的函數。
  • 添加的版本:1.0.submit()

    • 此簽名不接受任何參數。

此方法是第一個變體中.on( "submit", handler ) 和第三個變體中.trigger( "submit" ) 的快捷方式。

submit當用戶嘗試提交表單時,事件被發送到元素。它隻能附加到<form>元素。可以通過單擊顯式提交表單<input type="submit">,<input type="image">, 或者<button type="submit">,或按進入當某些表單元素具有焦點時。

根據瀏覽器的不同,如果表單隻有一個文本字段,或者隻有當存在提交按鈕時,Enter 鍵可能隻會導致表單提交。接口不應依賴此鍵的特定行為,除非問題是通過觀察按下 Enter 鍵的 keypress 事件來強製執行的。

例如,考慮 HTML:

<form id="target" action="destination.html">
  <input type="text" value="Hello there">
  <input type="submit" value="Go">
</form>
<div id="other">
  Trigger the handler
</div>

事件處理程序可以綁定到表單:

$( "#target" ).submit(function( event ) {
  alert( "Handler for .submit() called." );
  event.preventDefault();
});

現在,當提交表單時,會提醒消息。這發生在實際提交之前,因此我們可以通過在事件對象上調用 .preventDefault() 或從我們的處理程序返回 false 來取消提交操作。當點擊另一個元素時,我們可以手動觸發事件:

$( "#other" ).click(function() {
  $( "#target" ).submit();
});

這段代碼執行後,點擊觸發處理程序也會顯示消息。此外,默認submit表單上的操作將被觸發,因此表單將被提交。

JavaScript submit 事件不會在 Internet Explorer 中冒泡。但是,從 jQuery 1.4 開始,依賴於 submit 事件的事件委托的腳本將在瀏覽器中始終如一地工作,這已經規範了事件的行為。

其他注意事項:

  • 由於 .submit() 方法隻是 .on( "submit", handler ) 的簡寫,因此可以使用 .off( "submit" ) 進行分離。
  • 表單及其子元素不應使用與表單屬性衝突的輸入名稱或 ID,例如 submitlengthmethod 。名稱衝突可能會導致令人困惑的失敗。有關規則的完整列表並檢查這些問題的標記,請參閱DOMLint

例子:

如果您想阻止提交表單,除非設置了標誌變量,請嘗試:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>submit demo</title>
  <style>
  p {
    margin: 0;
    color: blue;
  }
  div,p {
    margin-left: 10px;
  }
  span {
    color: red;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<p>Type 'correct' to validate.</p>
<form action="javascript:alert( 'success!' );">
  <div>
    <input type="text">
    <input type="submit">
  </div>
</form>
<span></span>
 
<script>
$( "form" ).submit(function( event ) {
  if ( $( "input" ).first().val() === "correct" ) {
    $( "span" ).text( "Validated..." ).show();
    return;
  }
 
  $( "span" ).text( "Not valid!" ).show().fadeOut( 1000 );
  event.preventDefault();
});
</script>
 
</body>
</html>

演示:

如果您想阻止提交表單,除非設置了標誌變量,請嘗試:

$( "form" ).submit(function() {
  return this.some_flag_variable;
});

要在頁麵上的第一個表單上觸發提交事件,請嘗試:

$( "form" ).first().submit();

相關用法


注:本文由純淨天空篩選整理自jquery.com大神的英文原創作品 .submit()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。