为什么带有一个文本INPUT的FORM在输入时提交,而有一个带有两个文本INPUT的FORM不提交?

Gab*_*vay 18 html javascript forms

我刚刚发现按Enter键时,只包含一个INPUT(未隐藏)的FORM将自动提交.

但是,按Enter键时,不会提交包含至少两个INPUTS(未隐藏)的表单.

(所有脚本都没有提交/按钮/输入[type = submit])

看看这个jsfidle.这种行为有解释/标准吗?

<form id="form1" method="POST">
    <p>Does submit:</p>
    <input type="text" placeholder="focus and press enter"/>
</form>

<form id="form2" method="POST">
    <p>Does <strong>not</strong> submit:</p>
    <input type="text" placeholder="does not submit"/>
    <input type="text" placeholder=""/>
</form>
Run Code Online (Sandbox Code Playgroud)

Mau*_*sen 25

此行为是在HTML 2.0规范中引入的.有关详细信息,请参阅以下文章:

表单提交和ENTER键?

如果表单中只有一个单行文本输入字段,则用户代理应接受该字段中的Enter作为提交表单的请求

资料来源:W3C Specs

  • 这必须是WWW历史上最大的WTF之一.这是直到您找到规范并理解为什么这样做.然后它很精彩xD (5认同)