<input type="submit">

型別為**submit**的<input>元素呈現為按鈕。當發生click事件(通常是因為使用者單擊了按鈕)時,使用者代理會嘗試將表單提交到伺服器。

<input type="submit">元素的value屬性包含一個字串,該字串顯示為按鈕的標籤。按鈕沒有其他真實的值。value提供了按鈕的可訪問描述

設定 value 屬性

html
<input type="submit" value="Send Request" />

省略 value 屬性

如果你沒有指定value,按鈕將會有一個預設標籤,由使用者代理選擇。這個標籤很可能是“Submit”或“Submit Query”。以下是在你的瀏覽器中使用預設標籤的提交按鈕的示例

html
<input type="submit" />

其他屬性

除了所有<input>元素共享的屬性外,submit按鈕輸入還支援以下屬性。

formaction

一個字串,指示要提交資料的 URL。這優先於action屬性在擁有該<input><form>元素上。

此屬性也適用於<input type="image"><button>元素。

formenctype

一個字串,用於識別將表單資料提交到伺服器時要使用的編碼方法。有三個允許的值

application/x-www-form-urlencoded

這是預設值,它在百分比編碼文字(使用encodeURI()等演算法)後,將表單資料作為字串傳送。

multipart/form-data

使用FormDataAPI 管理資料,允許將檔案提交到伺服器。如果你的表單包含任何型別為file<input>元素(<input type="file">),你必須使用這種編碼型別。

text/plain

純文字;主要只在除錯時有用,這樣你可以輕鬆地檢視要提交的資料。

如果指定,formenctype屬性的值將覆蓋擁有表單的action屬性。

此屬性也適用於<input type="image"><button>元素。

formmethod

一個字串,指示將表單資料提交到伺服器時要使用的 HTTP 方法;此值將覆蓋在擁有表單的表單上給出的任何method屬性。允許的值是

get

透過從formactionaction屬性給出的 URL 開始構建一個 URL,追加一個問號(“?”)字元,然後追加表單資料,編碼方式如formenctype或表單的enctype屬性所述。然後,使用 HTTP get請求將此 URL 傳送到伺服器。此方法適用於僅包含ASCII字元且沒有副作用的簡單表單。這是預設值。

post

表單資料包含在傳送到formactionaction屬性給出的 URL 的請求主體中,使用 HTTP post方法。此方法支援複雜資料和檔案附件。

dialog

此方法用於指示按鈕關閉與輸入關聯的對話方塊,並且根本不傳輸表單資料。

此屬性也適用於<input type="image"><button>元素。

formnovalidate

如果存在,則為布林屬性,指定表單在提交到伺服器之前不應進行驗證。這將覆蓋在元素擁有表單的novalidate屬性的值。

此屬性也適用於<input type="image"><button>元素。

formtarget

一個字串,指定一個名稱或關鍵字,指示在提交表單後在哪裡顯示收到的響應。該字串必須是瀏覽上下文的名稱(即,標籤、視窗或<iframe>)。此處指定的值將覆蓋在擁有此輸入的<form>上給出的任何target

除了標籤、視窗或內聯框架的實際名稱外,還可以使用一些特殊的關鍵字。

_self

將響應載入到與包含表單的瀏覽上下文相同的瀏覽上下文。這將用接收到的資料替換當前文件。這是未指定時使用的預設值。

_blank

將響應載入到一個新的、未命名的瀏覽上下文。這通常是與當前文件相同的視窗中的一個新標籤頁,但可能會根據使用者代理的配置而有所不同。

_parent

將響應載入到當前瀏覽上下文的父瀏覽上下文。如果沒有父上下文,則其行為與_self相同。

_top

將響應載入到頂層瀏覽上下文;這是當前上下文的頂層祖先瀏覽上下文。如果當前上下文是頂層上下文,則其行為與_self相同。

此屬性也適用於<input type="image"><button>元素。

使用提交按鈕

<input type="submit">按鈕用於提交表單。如果你想建立一個自定義按鈕並使用 JavaScript 自定義其行為,你需要使用<input type="button">,或者更好的是,使用<button>元素。

如果你選擇使用<button>元素來建立表單中的按鈕,請記住這一點:如果<button><form>內,該按鈕將被視為“提交”按鈕。因此,你應該養成明確指定哪個按鈕是提交按鈕的習慣。

一個簡單的提交按鈕

我們將從建立一個帶有簡單提交按鈕的表單開始。

html
<form>
  <div>
    <label for="example">Let's submit some text</label>
    <input id="example" type="text" name="text" />
  </div>
  <div>
    <input type="submit" value="Send" />
  </div>
</form>

它渲染如下。

嘗試在文字欄位中輸入一些文字,然後提交表單。

提交後,資料名稱/值對將傳送到伺服器。在這種情況下,字串將是text=usertext,其中“usertext”是使用者輸入的文字,已編碼以保留特殊字元。資料提交的位置和方式取決於<form>的配置;有關更多詳細資訊,請參閱傳送表單資料

向提交按鈕新增鍵盤快捷鍵

鍵盤快捷鍵,也稱為訪問鍵和鍵盤等效項,允許使用者使用鍵盤上的一個鍵或幾個鍵的組合來觸發按鈕。要向提交按鈕新增鍵盤快捷鍵(就像對任何<input>新增快捷鍵一樣,只要有意義),你可以使用accesskey全域性屬性。

在這個示例中,s被指定為訪問鍵(你需要按下s加上你的瀏覽器/作業系統組合的特定修飾鍵)。為了避免與使用者代理自身的鍵盤快捷鍵發生衝突,訪問鍵的修飾鍵與主機計算機上的其他快捷鍵的修飾鍵不同。有關更多詳細資訊,請參閱accesskey

以下是之前示例添加了s訪問鍵的情況。

html
<form>
  <div>
    <label for="example">Let's submit some text</label>
    <input id="example" type="text" name="text" />
  </div>
  <div>
    <input type="submit" value="Send" accesskey="s" />
  </div>
</form>

例如,在 Mac 上的 Firefox 中,按下Control-Option-S將觸發“傳送”按鈕,而 Windows 上的 Chrome 使用Alt+S

上面示例的問題是,使用者將不知道訪問鍵是什麼!這尤其如此,因為修飾鍵通常是非標準的,以避免衝突。在構建網站時,務必以不會干擾網站設計的方式提供此資訊(例如,提供一個易於訪問的連結,指向有關網站訪問鍵的資訊)。向按鈕新增工具提示(使用title屬性)也有幫助,雖然這並不是一個完整的可訪問性解決方案。

停用和啟用提交按鈕

要停用提交按鈕,請在其上指定disabled屬性,如下所示。

html
<input type="submit" value="Send" disabled />

你可以透過將disabled設定為truefalse來在執行時啟用和停用按鈕;在 JavaScript 中,這看起來像btn.disabled = truebtn.disabled = false

注意:有關啟用和停用按鈕的更多想法,請參閱<input type="button">頁面。

驗證

提交按鈕不參與約束驗證;它們沒有要約束的實際值。

示例

我們在上面包含了簡單的示例。關於提交按鈕,真的沒有什麼可說的了。這種型別的控制元件有時被稱為“簡單按鈕”是有原因的。

技術摘要

用作按鈕標籤的字串
事件 click
支援的通用屬性 typevalue
IDL 屬性 value
DOM 介面

HTMLInputElement

方法
隱式 ARIA 角色 button

規範

規範
HTML 標準
# submit-button-state-(type=submit)

瀏覽器相容性

BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。

另請參閱