【问题标题】:HTML: What determines the 'move the focus to the next control when Enter is hit' behaviorHTML:什么决定了“按下 Enter 时将焦点移动到下一个控件”行为
【发布时间】:2009-10-15 16:21:38
【问题描述】:

一个基本的 HTML 问题。当在文本框中按 Enter 将焦点移动到下一个控件时,是否可以在 HTML 页面上以声明方式实现行为?你如何实现它以及如何关闭它?或者这里应该涉及到动态 javascript 部分?

例如,IE7 中的以下 HTML 不允许使用 enter 将焦点移至下一个文本框:

<html>
<body>
<form>
<table>
<tr><td>
<input type="text" name="i1"/>
<td></tr>
<tr><td>
<input type="text" name="i2"/>
<td></tr>    
</table>
</form>
</body>
</html>

我有一个页面,我需要摆脱这种“按下 Enter 时将焦点移到下一个控件”的行为。

@Edit:上面的例子被证明是不正确的。当我在要避免此行为的页面上按 Enter 键时,焦点跳转到的控件实际上是提交类型。奇怪的是,这个“提交”是 Telerik 树控件的一部分,不是提交按钮,而是用于折叠和展开树结构的箭头。 所以我假设焦点跳转到下一个提交控件,浏览器期望它是一个普通的提交按钮,这在我的情况下是不正确的。

所以我想我应该在这里寻找 Telerik 特定的解决方案。

【问题讨论】:

  • 当按下回车时表单被提交,你的意思是tab吗?
  • 从可访问性的角度来看,打破默认行为是非常糟糕的做法。许多残障用户依赖现有的键盘行为。
  • 不幸的是,这就是控件默认的行为方式。我无法控制供应商:)

标签: html tree focus telerik enter


【解决方案1】:

在大多数浏览器中,当焦点在表单中时按 Enter 将提交表单。如果您需要更改此行为以便按 Enter 移动到下一个文本框,您将需要使用 javascript。

试试这个:(由 javascript.internet.com 提供)

http://javascript.internet.com/forms/tab-key-emulation.html

【讨论】:

  • 感谢您的建议,事实上就是这样——焦点移至输入控件,类型为“submit”
【解决方案2】:

我通常会在以下位置查找这些内容: http://start.gotapi.com/

【讨论】:

  • 问题不在于如何设置 Tab 键顺序,而在于什么决定了按下 Enter 键时的焦点变化。
猜你喜欢
  • 1970-01-01
  • 2017-05-08
  • 2023-03-27
  • 1970-01-01
  • 2013-10-16
  • 1970-01-01
  • 2012-05-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多