如何在网页加载时自动将焦点设置为文本框?

2022-08-30 01:57:18

如何在网页加载时自动将焦点设置为文本框?

是否有HTML标签可以做到这一点,还是必须通过Javascript来完成?


答案 1

如果您使用的是 jquery:

$(function() {
  $("#Box1").focus();
});

或原型:

Event.observe(window, 'load', function() {
  $("Box1").focus();
});

或普通 javascript:

window.onload = function() {
  document.getElementById("Box1").focus();
};

尽管请记住,这将取代其他加载处理程序,因此请在google中查找addLoadEvent()以获取一种安全的方式来附加onload处理程序而不是替换。


答案 2

在 HTML 中,所有表单域都有一个自动对焦属性。在Dive Into HTML 5中有一个很好的教程。不幸的是,低于10的IE版本目前不支持它。

要使用 HTML 5 属性并回退到 JS 选项,请执行以下操作:

<input id="my-input" autofocus="autofocus" />
<script>
  if (!("autofocus" in document.createElement("input"))) {
    document.getElementById("my-input").focus();
  }
</script>

不需要 jQuery、onload 或事件处理程序,因为 JS 位于 HTML 元素之下。

编辑:另一个优点是它在某些浏览器中与JavaScript一起使用,当您不想支持较旧的浏览器时,您可以删除JavaScript。

编辑2:Firefox 4现在支持该属性,只是让IE不支持。autofocus