<form method="POST" action="">
<input type="text" />
<input type="text" />
</form>
(JSFiddle)
按input
上的Enter键。然后删除其中一个input
并再按一次。当我们在表单内部有两个输入时,表单未提交(我们需要一个按钮)。那是为什么?
答案 0 :(得分:7)
单个输入的HTML表单的默认行为是在输入时提交。添加第二个输入后,按Enter键将不再提交表单。名称的存在或缺乏与它无关。
答案 1 :(得分:3)
最初的想法是非常简单的形式,通常仅由文本输入框组成,例如用于搜索,应该简单快捷:用户只需键入搜索词并点击Enter即可。其他类型的控件(例如复选框)不会影响这一点。几乎所有的浏览器都实现了这个想法。
但是,根据旧观点,如果有几个文本输入框,那么过早提交表单的风险太大:用户点击Enter,期望进入下一个字段,或者可能只是偶然。
然而,IE(在IE 4中)引入了使文本输入框中的Enter提交表单的功能,即使表单包含多个这样的元素。后来,其他浏览器也纷纷效仿,现在这种(错误?)行为似乎是“标准的”。这个功能被认为是一种可用性改进,在某些特殊情况下,确实如此。更常见的是,这是一种风险,因此页面通常会尝试使用客户端脚本来阻止它。
但是,至少在大多数现代浏览器中,只有在表单有提交按钮时才会发生这种情况。但如果省略提交按钮,用户将会感到困惑,因为大多数表单都有提交按钮或按钮。
答案 2 :(得分:0)
除非您在表单中的某处放置按钮或输入[type = submit]。该按钮可以包含在可见性:隐藏的CSS中,如果您不希望它出现。