没有 JavaScript 的默认 html 表单焦点

是否可以在不使用 JavaScript 的情况下将默认输入焦点设置为 HTML 表单,例如:

<html>
<form>
Input 1: <input type="text" name="textbox1"/>
<br/>
Input 2: <input type="text" name="textbox2"/>
</form>
</html>

我希望在不使用 JavaScript 的情况下将默认焦点设置为表单加载时的任何一个文本框(正如我希望在用户禁用 js 时发生的行为一样)。

113398 次浏览

如果没有某种形式的脚本,这是不可能的。即使是 Google 的主页也需要 Javascript 来集中搜索字段。

您可以在 HTML5中完成,但是在其他情况下,必须使用 JavaScript。

HTML5允许您将 autofocus添加到表单元素中,例如:

<input type="text" name="myInput" autofocus />

这在支持 HTML5的浏览器(或者更确切地说,支持 HTML5这一特定部分的浏览器)中确实有效,但是正如你所知道的,并不是每个人都可以使用它。

不过,您可以使用 Tabindex属性并使用默认文本框的最低值。点击这里查看浏览器支持:

Http://reference.sitepoint.com/html/object/tabindex#compatibilitysection

网站显示

(在几乎所有其他情况下(即表单控件和链接) ,tabindex 都有很好的支持。)

正如其他人所说,没有 Javascript 你不能保证默认字段。如果您有多个字段需要用户访问,您可能想尝试使用的另一个选项是使用 accesskey属性。这实际上意味着用户可以在稍后的浏览过程中立即返回任何一个字段,这对于屏幕阅读器等的用户来说可能很方便。.

维基百科上关于这个主题的文章是非常有用的-http://en.wikipedia.org/wiki/Access_key

需要注意的是... ... 如果你设置了一个聚焦表单元素,那么任何使用辅助技术(AT)如屏幕阅读器的人都需要备份来查看菜单和聚焦字段之前的任何其他内容。

在我看来,首选的方法是不要将焦点设置到任何字段,除非跳过链接可用。这样他们就可以选择跳过页面内容或者自上而下地阅读页面。