使用jquery如何在页面加载时将第一个元素(编辑字段,文本区域,下拉字段等)聚焦在表单中?
就像是:
document.forms[0].elements[0].focus();
但是使用jquery.
另一个要求是,当表单具有class ="filter"时,不要聚焦第一个元素.
$('form:not(.filter) :input:visible:enabled:first').focus()
这将选择第一个可见的输入元素(,
,
)不具有类
filter
的吧.
对于后台我在rails app 上的ruby中使用了脚本.在尝试了所有答案并发现它们都无法正常工作后,通过搜索谷歌我发现这个代码片段有效:
$(function() { $("form:not(.filter) :input:visible:enabled:first").focus(); });
结果是$('form :input:first')
匹配每个表单上的rails插入的隐藏输入.
我喜欢用类标记我选择的元素并按类选择,而不是将其保留到页面上元素的顺序.我发现这比在选择可能隐藏或不隐藏的元素时更新我的"真正的第一元素"算法更容易,可能会或可能不会被框架注入,...
$(document).ready( function() { $('input.js-initial-focus:first').focus(); // choose first just in case });