当前位置:  开发笔记 > 编程语言 > 正文

如何将焦点设置为独立于id的HTML表单中的第一个输入元素?

如何解决《如何将焦点设置为独立于id的HTML表单中的第一个输入元素?》经验,为你挑选了7个好方法。

有没有一种简单的方法在加载页面时在第一个输入元素(文本框,下拉列表,...)上设置网页的焦点(输入光标)而不必知道元素的ID?

我想将它作为我的Web应用程序的所有页面/表单的通用脚本实现.



1> Jacob Stanle..:

虽然这不回答问题(需要一个通用脚本),但我知道HTML5引入'autofocus'属性可能对其他人有用:

深入了解HTML5有更多信息.


在HTML5中,某些属性不需要具有值,"已检查"是另一个属性,在这种情况下.我相信当值保持不变时,暗示它与名称相同(例如autofocus ="autofocus"和checked ="checked").
autofocus是属性名称.它的价值怎么样?像autofocus那样的Somethig =真的不需要吗?不设置任何值意味着什么?
@Geek与其他许多属性一样,autofocus属性是布尔属性类型.这就是为什么它仅以声明方式使用,而不是通过为其赋值.在w3c规范中查看更多详细信息:https://www.w3.org/TR/html5/infrastructure.html#boolean-attribute

2> Marko Dumic..:

您还可以尝试基于jQuery的方法:

$(document).ready(function() {
    $('form:first *:input[type!=hidden]:first').focus();
});


如果在这种情况下隐藏页面上的第一个表单会发生什么?或者,如果表单上的第一个元素是通过CSS隐藏的?当然这会失败.我当然是迂腐但这就是我的滚动方式.

3> bobince..:
document.forms[0].elements[0].focus();

这可以使用循环来改进,例如.不关注某些类型的字段,禁用字段等.更可能是一类="自动对焦"添加到你实际现场了形式要突出重点,循环[I] .elements [J]寻找那类名.

无论如何:在每个页面上执行此操作通常不是一个好主意.当您关注输入时,用户失去了例如.从键盘滚动页面.如果出乎意料,这可能很烦人,因此只有在您确定使用表单字段将成为用户想要做的事情时才会自动对焦.即.如果你是谷歌


应该是正确的答案,因为问题没有jquery标签。

4> ngeek..:

我发现最全面的jQuery表达式是(通过这里的帮助)

$(document).ready(function() {
    $('input:visible:enabled:first').focus();
});



5> John Topley..:

如果您正在使用Prototype JavaScript框架,那么您可以使用focusFirstElement方法:

Form.focusFirstElement(document.forms[0]);



6> Galwegian..:

这里有一篇可能有用的文章:将焦点设置为网页上的第一个输入



7> Marko Dumic..:

您还需要跳过任何隐藏的输入.

for (var i = 0; document.forms[0].elements[i].type == 'hidden'; i++);
document.forms[0].elements[i].focus();

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有