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 |
浏览器兼容性
加载中…