加载网页时如何自动将焦点设置到文本框?
是否有一个 HTML 标签可以做到这一点,还是必须通过 Javascript 来完成?
加载网页时如何自动将焦点设置到文本框?
是否有一个 HTML 标签可以做到这一点,还是必须通过 Javascript 来完成?
如果您使用的是 jquery:
$(function() {
$("#Box1").focus();
});
或原型:
Event.observe(window, 'load', function() {
$("Box1").focus();
});
或普通的javascript:
window.onload = function() {
document.getElementById("Box1").focus();
};
但请记住,这将替换其他加载处理程序,因此请在谷歌中查找 addLoadEvent() 以安全方式附加加载处理程序而不是替换。
在 HTML 中,所有表单字段都有一个autofocus属性。在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 现在支持该autofocus属性,只是不支持 IE。
你需要使用javascript:
<BODY onLoad="document.getElementById('myButton').focus();">
@Ben 指出您不应该添加这样的事件处理程序。虽然这是另一个问题,但他建议您使用此功能:
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
然后在您的页面上调用 addLoadEvent 并引用一个将焦点设置到您想要的文本框的函数。
只需在文本字段中编写自动对焦。这很简单,它的工作原理如下:
<input name="abc" autofocus></input>
希望这可以帮助。
您可以通过以下方式使用 jquery 轻松完成:
<script type="text/javascript">
$(document).ready(function () {
$("#myTextBoxId").focus();
});
</script>
通过在$(document).ready().
这意味着这个函数会在 DOM 准备好时执行。
关于READY函数的更多信息,请参考:http : //api.jquery.com/ready/