HTMLFormElement: requestSubmit() 方法
HTMLFormElement 方法 requestSubmit() 請求使用特定的提交按鈕提交表單。
語法
js
requestSubmit()
requestSubmit(submitter)
引數
submitter可選-
一個屬於表單的 提交按鈕。
如果
submitter指定了form*屬性,它們將 覆蓋 表單的提交行為(例如,formmethod="POST")。如果
submitter具有name屬性或是一個<input type="image">,它的資料將 包含 在表單提交中(例如,btnName=btnValue)。如果省略
submitter引數,表單元素本身將被用作提交者。
返回值
無(undefined)。
異常
TypeError-
如果指定的
submitter不是一個 提交按鈕,則丟擲此異常。 NotFoundErrorDOMException-
如果指定的
submitter不是呼叫requestSubmit()的表單的成員,則丟擲此異常。提交者必須是表單元素的後代,或者必須具有指向該表單的form屬性。
用法說明
顯而易見的問題是:為什麼會存在這個方法,當我們從一開始就有了 submit() 方法時?
答案很簡單。submit() 會提交表單,但僅此而已。而 requestSubmit() 的行為則類似於點選了提交按鈕。表單內容將被驗證,只有在驗證成功後,表單才會被提交。一旦表單提交,submit 事件將被髮送回表單物件。
示例
在下面的示例中,如果 requestSubmit() 可用,則會嘗試使用它來提交表單。如果找到 ID 為 main-submit 的提交按鈕,則使用該按鈕提交表單。否則,表單將直接由表單本身提交,不帶 submitter 引數。
另一方面,如果 requestSubmit() 不可用,此程式碼將回退呼叫表單的 submit() 方法。
js
let myForm = document.querySelector("form");
let submitButton = myForm.querySelector("#main-submit");
if (myForm.requestSubmit) {
if (submitButton) {
myForm.requestSubmit(submitButton);
} else {
myForm.requestSubmit();
}
} else {
myForm.submit();
}
規範
| 規範 |
|---|
| HTML # dom-form-requestsubmit-dev |
瀏覽器相容性
載入中…