HTMLFormElement: submit event
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
当表单 <form>
提交的时候触发 submit
事件。
是否冒泡 | 是(虽然其通常被看作不冒泡的简单事件) |
---|---|
是否可取消 | 是 |
接口 | SubmitEvent |
事件处理器属性 | GlobalEventHandlers.onsubmit |
注意 submit
事件只能作用于 <form>
元素本身,不能作用于 <button>
或者 <input type="submit">。但 SubmitEvent
被用于表单提交时,会携带 submitter
属性,这是触发提交请求时会调用的按钮。
当用户点击提交按钮(<button>
或 <input type="submit">),亦或是在表单里输入时(e.g. <input type="text">)按下 Enter 键,submit
事件将会被触发。直接调用 form.submit()
方法时,事件不会发送到表单。
示例
这个示例使用 EventTarget.addEventListener()
去监听表单的提交。并记录当前的 Event.timeStamp
,然后阻止提交表单的默认操作。
HTML
html
<form id="form">
<label>Test field: <input type="text" /></label>
<br /><br />
<button type="submit">Submit form</button>
</form>
<p id="log"></p>
JavaScript
js
function logSubmit(event) {
log.textContent = `Form Submitted! Time stamp: ${event.timeStamp}`;
event.preventDefault();
}
const form = document.getElementById("form");
const log = document.getElementById("log");
form.addEventListener("submit", logSubmit);
结果
规范
Specification |
---|
HTML Standard # event-submit |
HTML Standard # handler-onsubmit |
浏览器兼容性
BCD tables only load in the browser