当SELECT重点提交表单时为什么不进入?

时间:2010-06-03 18:25:11

标签: html forms submit form-submit

考虑以下HTML:

<form action="">
    <input />
    <select>
        <option>A</option>
        <option>B</option>
    </select>
    <input type="submit" />
</form>

如果重点放在input(文本框)上,然后按Enter键,表单会提交。

但是,如果焦点在select(下拉框)并且我点击了输入,则没有任何反应。

我知道我可以找出一些JavaScript来覆盖它,但我想知道为什么点击输入不仅仅有效?

我是否会通过使用JavaScript捕获输入(可能是下拉菜单的本机键盘可访问性)而中断?

2 个答案:

答案 0 :(得分:21)

这只是控制的本质。 Enter键(或鼠标单击)是进行选择的原因。按Enter键提交表单会导致用户体验不佳,因为表单基本上不可用。

我不建议通过JavaScript更改行为,因为默认行为是常态以及每个人都期望的内容。

(想象一下,如果您在下拉列表中进行选择时提交的每个表单会是什么样的。例如,考虑在Amazon.com上搜索。一个选择一个类别然后输入搜索词。如果选择了一个按Enter键,表单将在输入搜索词之前提交。)

答案 1 :(得分:11)

选择标签非常有趣。 Enter键唯一能做的就是一旦你点击下拉列表打开并使用箭头键选择一个选项,你可以按Enter键关闭下拉菜单。

令我难以置信的是W3规格。没有说明输入键应该做什么,每个浏览器都以同样的方式做!浏览器程序员可以完成以下任一操作。

当关注关闭的下拉菜单时输入选择:

  1. 打开下拉列表,这样您就可以在看到所有选项的同时键入它。

  2. 将提交表格。

  3. 然而每个人都决定不改变它...更令人惊奇的是,我已经设计了13年的网站,直到今天,当我从业务分析师那里得到错误修复时我注意到了这一点当他们点击进入时,他们无法提交表格!让我想起了Tiny Pony

    http://www.w3.org/TR/html401/interact/forms.html