Как установить фокус на текстовое поле при загрузке страницы - PullRequest
2 голосов
/ 27 апреля 2010

Я пытаюсь установить фокус на текстовое поле при загрузке страницы. Я пробовал много решений, ссылаясь на идентификатор элемента, но не смог сфокусировать элемент. Позже, когда я проверял элемент с помощью firebug, я обнаружил, что для одного и того же элемента идентификатор изменяется в разном исполнении. Я ищу простейшее решение с использованием 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 ]

4 голосов
/ 27 апреля 2010
$(document).ready(function(){
  $('input.selected').focus();
});    

Следует сфокусировать элемент ввода с классом «selected» при загрузке страницы.

2 голосов
/ 27 апреля 2010

Используйте

$('#form :input:visible:enabled:first').focus();

во время готовности документа.

1 голос
/ 27 апреля 2010

Согласно whatwg.org атрибут автофокуса HTML5 в настоящее время доступен только в Opera, но будет использоваться другими браузерами в будущем.

<input type="text" autofocus />

<script>
    // jQuery
    $(function(){
        if(!("autofocus" in document.createElement("input"))){
            $("input[autofocus]:eq(0)").focus();
        }
    });
</script>
1 голос
/ 27 апреля 2010

Используя jquery, будет получен первый входной дочерний элемент #form:

$('#form input:eq(0)').focus();
1 голос
/ 27 апреля 2010
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

надеюсь, что это поможет вам ..

...