我有一个包含多个表单的HTML文件。我试图将第二个表单的第一个元素聚焦在页面加载上。我将jquery代码添加到HTML结尾,以便首先关注表单的输入:
<script>
$("form[id=form2]").find("input[type!=hidden]:first").focus();
</script>
如果第二个表单的第一个元素是文本输入,它可以正常工作,但如果它的下拉列表或复选框它不起作用。如何将焦点集中在任何第一个元素上?
编辑:我需要在表单选择器中使用ID,因为表单ID可以是变量。
答案 0 :(得分:4)
$("form:eq(1) :input[type!='hidden']").first().focus();
不要使用带有ID的属性选择器,只需使用ID选择器要快得多。
您可以使用:input
选择器,它选择所有输入元素,如input,textarea,select和button
然后使用:first
或first()
获取第一个。
编辑:根据评论,ID不是常量,因此使用tagName和:eq()
可以选择第二种形式,而:eq()
基于零,第二个是1
答案 1 :(得分:3)
输入选择器根据http://api.jquery.com/input-selector/的文档查找任何有效的表单输入元素,其中包括下拉列表和复选框。 因为看起来它还包含隐藏的字段,所以我还添加了:visible选择器来删除隐藏的表单元素。
<script>
$("form[id=form2]").find(":input:visible:first").focus();
</script>