我正在尝试将焦点设置到页面加载事件的文本框中。我通过引用元素id尝试了许多解决方案,但无法关注元素。后来当我使用firebug检查元素时,我发现同一个元素的id在不同的执行中发生了变化。我正在寻找使用javascript或jquery实现此最简单的解决方案
<h:form id="form">
<rich:dataTable value="#{books}" var="book">
<ui:repeat value="#{authors}" var="author">
<h:inputText value="#{author.name}"/>
</ui:repeat>
</rich:dataTable>
</h:form>
答案 0 :(得分:4)
$(document).ready(function(){
$('input.selected').focus();
});
应该在页面加载时将输入元素与“选定”类重点关注。
答案 1 :(得分:2)
使用
$('#form :input:visible:enabled:first').focus();
文件准备就绪时。
答案 2 :(得分:1)
Private Sub SetFocus(ByVal ctrl As Control)
' Define the JavaScript function for the specified control.
Dim focusScript As String = "<script language='javascript'>" & _
"document.getElementById('" + ctrl.ClientID & _
"').focus();</script>"
' Add the JavaScript code to the page.
Page.RegisterStartupScript("FocusScript", focusScript)
End Sub
希望这会对你有帮助..
答案 3 :(得分:1)
使用jquery,这将获取#form
的第一个输入子项:
$('#form input:eq(0)').focus();
答案 4 :(得分:1)
根据whatwg.org,HTML5自动聚焦属性目前仅在Opera中可用,但将来会被其他浏览器采用。
<input type="text" autofocus />
<script>
// jQuery
$(function(){
if(!("autofocus" in document.createElement("input"))){
$("input[autofocus]:eq(0)").focus();
}
});
</script>