首页 > 解决方案 > HTML 标准是否说明按 Enter 提交表单?

问题描述

每个浏览器似乎都将按下Enter视为提交表单。这种行为是由 HTML 标准指定的,还是只是浏览器通常实现的?

相关但更详细地介绍了按钮的确切行为:所有浏览器的处理都输入(键 13)相同的内部表单吗?

我找到的最接近的,来自https://www.w3.org/TR/html52/sec-forms.html#implicit-submission

如果用户代理支持让用户隐式提交表单(例如,在某些平台上,当文本字段聚焦时按下“enter”键会隐式提交表单),那么对于默认按钮已定义激活的表单执行此操作行为必须导致用户代理在该默认按钮上运行合成点击激活步骤。

这表明它依赖于平台。

标签: htmlformsbrowser

解决方案


在 html 标准中

https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#implicit-submission

你会发现这个:

4.10.21.2 隐式提交

表单元素的默认按钮是树形顺序中的第一个提交按钮,其表单所有者是该表单元素。

如果用户代理支持让用户隐式提交表单(例如,在某些平台上,当文本控件获得焦点时按下“enter”键会隐式提交表单),那么对于默认按钮具有激活行为的表单执行此操作并且未被禁用,必须使用户代理在该默认按钮处触发单击事件。

本质上:DOM 树中的第一个可提交按钮(属于表单)将在“Enter”时触发。


推荐阅读