2010-04-27 4 views
2

J'essaie de définir le focus sur la zone de texte de l'événement de chargement de la page. J'ai essayé de nombreuses solutions en me référant à l'identifiant de l'élément, mais je n'ai pas pu mettre l'élément en évidence. Plus tard, quand j'inspecte l'élément en utilisant firebug, j'ai trouvé pour le même élément que l'id change dans une exécution différente. Je cherche la solution la plus simple en utilisant javascript ou jquery pour atteindre cetComment définir le focus sur une zone de texte lors d'un événement de chargement de page

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

Répondre

2

Utilisez

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

pendant document prêt.

+0

J'ai utilisé comme ça. Est-ce correct? Impossible de définir le focus sur un élément. Achaius

+0

Merci a travaillé comme un charme –

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 

espère que cela vous aidera ..

+1

Est-ce VB? Comment cela aide-t-il? – karim79

4
$(document).ready(function(){ 
    $('input.selected').focus(); 
});  

devrait se concentrer l'élément d'entrée avec la classe « sélectionnée » sur chargement de la page.

+1

Où la classe 'selected' entre-t-elle? Suis-je juste manquant? – user113716

+0

pas du tout, puisque Kalpana a demandé "la" zone de texte, il n'a fait aucune déclaration que ce soit le premier ou le dernier dans son balisage. J'ai donc décidé que c'était probablement une bonne idée d'impliquer une classe. – jAndy

1

En utilisant jquery, ce saisiront le premier enfant d'entrée du #form:

$('#form input:eq(0)').focus(); 
+0

J'ai utilisé comme ça dans le formulaire, je n'ai pas pu mettre au point Achaius

+0

Si vous regardez dans Firebug, le script est-il inséré? Je suppose que vous avez référencé le framework jQuery quelque part. Si oui, où? Il devrait être chargé avant de pouvoir exécuter n'importe quel code jQuery. – user113716

1

Selon whatwg.org l'attribut autofocus HTML5 est disponible uniquement dans Opera au moment, mais sera adopté par d'autres navigateurs à l'avenir .

<input type="text" autofocus /> 

<script> 
    // jQuery 
    $(function(){ 
     if(!("autofocus" in document.createElement("input"))){ 
      $("input[autofocus]:eq(0)").focus(); 
     } 
    }); 
</script> 
Questions connexes