代码之家  ›  专栏  ›  技术社区  ›  Marc Stober

为什么在选择焦点集中时不按enter键提交表单?

  •  25
  • Marc Stober  · 技术社区  · 16 年前

    考虑以下HTML:

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

    如果焦点在 input (文本框)然后按enter键,表单提交。

    select (下拉框)我按回车键,什么也没发生。

    有什么我可以通过用JavaScript捕获enter来打破的吗(可能是下拉菜单的一些本地键盘可访问性)?

    2 回复  |  直到 16 年前
        1
  •  22
  •   Chocula    16 年前

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

    我不建议通过JavaScript更改行为,因为默认行为是规范,也是每个人都会期望的。

        2
  •  12
  •   Styledev    15 年前

    select标签非常有趣。回车键只需单击下拉菜单打开并使用箭头键选择一个选项,即可按回车键关闭下拉菜单。

    当焦点集中在一个关闭的下拉列表上时,输入选择将:

    1. 打开下拉列表,以便您可以在查看所有选项的同时通过它进行键入。

    2. 会提交表格。

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

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