HTMLFormElement:submit 事件
当 <form>
提交时,会触发 submit
事件。
请注意,submit
事件在 <form>
元素本身触发,而不是在其中的任何 <button>
或 <input type="submit">
上触发。但是,发送以指示表单提交操作已触发的 SubmitEvent
包含一个 submitter
属性,该属性是用于触发提交请求的按钮。
submit
事件在以下情况下触发:
- 用户点击 提交按钮 时,
- 用户在编辑表单中的字段(例如 <input type="text">)时按下 Enter 键时,
- 脚本调用
form.requestSubmit()
方法时。
但是,当脚本直接调用 form.submit()
方法时,不会将事件发送到表单。
语法
在诸如 addEventListener()
之类的方法中使用事件名称,或设置事件处理程序属性。
js
addEventListener("submit", (event) => {});
onsubmit = (event) => {};
事件类型
一个 SubmitEvent
。继承自 Event
。
事件属性
除了下面列出的属性之外,此接口还继承其父接口 Event
的属性。
submitter
只读-
一个
HTMLElement
对象,用于识别用于触发表单提交的按钮或其他元素。
示例
此示例使用 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! Timestamp: ${event.timeStamp}`;
event.preventDefault();
}
const form = document.getElementById("form");
const log = document.getElementById("log");
form.addEventListener("submit", logSubmit);
结果
规范
规范 |
---|
HTML 标准 # event-submit |
HTML 标准 # handler-onsubmit |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。