按下回车键提交包含一个输入框的HTML表单,但不包含两个输入框。

11
有人能解释一下这种行为吗?在HTML表单的文本框中按下回车键会提交表单,但是当表单包含两个或更多文本框时就不会提交。
jsFiddle(一个文本框):http://jsfiddle.net/gpPTa/
jsFiddle(两个文本框):http://jsfiddle.net/fDbJt/

2个回答

3

很不幸,默认情况下,表单只有一个输入框时会在按下回车键时提交。

您可以为每个输入框添加JavaScript命令以提交表单,或者放置一个宽度为0和/或可见性为none的提交按钮。 例如:

<form>
    <input style='width:0; visibility:hidden' type='submit'>
    <input>
    <input>
</form>

0

看起来浏览器认为只有一个输入框,它也是提交控件。聚焦在它上面并按下回车键将提交表单,就像聚焦在提交按钮上一样。

当你在其中一个<inputs>中添加type="submit"时,你可以使用任意多个其他的输入框,并且通过按下回车键提交表单

我没有任何参考资料来支持这一点,但对我来说似乎很合理。


这种行为对我来说似乎太不一致了。我可以理解为什么在唯一的<input>上按回车键会提交表单,因为这是唯一可以与表单交互的表单元素。但是,如果不同的<input>包含type="submit",为什么在一个<input>上按回车键会提交表单我就不明白了。我想知道是否有规范提供了这种行为背后的原理。 - thinkterry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接