如何在页面加载事件上将焦点设置为文本框

时间:2010-04-27 11:44:35

标签: javascript jquery jsf richfaces

我正在尝试将焦点设置到页面加载事件的文本框中。我通过引用元素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>

5 个答案:

答案 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>