刨根问底:HTML中form的隐式提交

有时在HTML页面form的input里按了回车键会提交该表单,并且form的submit按钮的click事件也会被触发.这是什么原理呢?是因为form的隐式提交(Implicit submission)机制
在https://www.w3.org/TR/html52/sec-forms.html#implicit-submission中是这么解释的

A form element’s default button is the first Submit Button in tree order whose form owner is that form element.

form的第一个submit按钮作为default button

If the user agent supports letting the user submit a form implicitly (for example, on some platforms hitting the "enter" key while a text field is focused implicitly submits the form), then doing so for a form whose default button has a defined activation behavior must cause the user agent to run synthetic click activation steps on that default button.

浏览器隐式提交时要触发default button的click事件.在某些平台上,text field获得焦点时,按回车键会触发隐式提交

If the form has no Submit Button, then the implicit submission mechanism must do nothing if the form has more than one field that blocks implicit submission, and must submit the form element from the form element itself otherwise.
For the purpose of the previous paragraph, an element is a field that blocks implicit submission of a form element if it is an input element whose form owner is that form element and whose type attribute is in one of the following states: Text, Search, URL, Telephone, E-mail, Password, Local Date and Time, Date, Month, Week, Time, Number

form里有超过一个的input时,必须阻止隐式提交

在早期的HTML规范中,还有如下描述

When there is only one single-line text input field in a form, the user agent should accept Enter in that field as a request to submit the form.

如果form里只有一个text input,那么那个input按回车要触发form提交
地址是https://www.w3.org/MarkUp/html-spec/html-spec_8.html#SEC8.2

你可能感兴趣的:(刨根问底:HTML中form的隐式提交)