IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

Richfaces : Mettre le cursor dans un inputtext


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2
    Par défaut Richfaces : Mettre le cursor dans un inputtext
    Bonjour à tous,

    J'ai une zone de saisie comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:inputText value="#{personBacking.searchText}" id="searchText"/>
    J'aimerai que par défaut le curseur de la souris soit dans cette zone afin de pouvoir y saisir quelque chose directement sans cliquer à l'intérieur.

    En fait je veut utiliser un évènement "onKeyup" afin de regénérer un "outPutText" au fur et à mesure de la saisie. Cependant, après chaque lettre saisie, le curseur n'est plus dans ma zone de texte. Il faut donc recliquer à chaque fois dedans après avoir saisie un caraactère; d'où ma demande !

    J'espère avoir été clair.

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    C'est bizarre que tu perdes le focus quand tu tapes le texte. A moins que tu ne fasses la mise à jour de l'outputText en Ajax ? Tu peux nous montrer le code JSF ?

    Sinon, tu peux utiliser la fonction Javascript field.focus() pour donner le focus à ton champ field...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2
    Par défaut
    Merci pour ta réponse.

    Voila le code jsf de la page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <ui:composition
     xmlns="http://www.w3.org/1999/xhtml"
     xmlns:ui="http://java.sun.com/jsf/facelets"
     xmlns:f="http://java.sun.com/jsf/core"
     xmlns:h="http://java.sun.com/jsf/html"
     xmlns:rich="http://richfaces.org/rich"
     xmlns:a4j="http://richfaces.org/a4j"
     xmlns:dg="http://galland/jsf">
      <rich:panel>
        <f:facet name="header">
          <h:outputText value="Recherche de personnes" />
        </f:facet>
     
        <h:selectOneMenu value="#{personBacking.selectedSearchAttribute}">
      		<dg:selectItems value="#{personBacking.searchAttributes}" var="attribute" label="#{messages[attribute]}"  />
    	</h:selectOneMenu>
     
    	<h:selectOneMenu value="#{personBacking.searchOperator}">
      		<dg:convertEnum />
      		<dg:enumItem enumValue="STARTS" label="#{messages['STARTS']}" />
      		<dg:enumItem enumValue="CONTAINS" label="#{messages['CONTAINS']}" />
      		<dg:enumItem enumValue="ENDS" label="#{messages['ENDS']}" />
    	</h:selectOneMenu>
     
     
    	<h:inputText value="#{personBacking.searchText}" id="searchText">
    		<a4j:support event="onkeyup" reRender="output"/>
    	</h:inputText>	
     
     
    	<a4j:commandButton id="save"
    	 action="#{personBacking.search()}"
         value="Rechercher" />
     
        <h:outputText id="output" style="font-weight:bold" value="#{personBacking.searchText}"/>
     
       </rich:panel>
     
        <rich:dataTable
        rendered="#{not empty personBacking.searchList}"
        value="#{personBacking.searchList}"
        var="searchPerson"
        headerClass="table-header"
                style="width: 100%"
      	>
    	    <f:facet name="header">
    	      	<h:outputText value="Personnes" />
    	    </f:facet>
    	    <h:column>
    	    	<h:outputText value="#{searchPerson.uid}" />
    	    </h:column>
    	    <h:column>
    	    	<h:outputText value="#{searchPerson.cn}" />
    	    </h:column>
      	</rich:dataTable>
     
     
     
    </ui:composition>
    Et voila le bout de code intéressant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <h:inputText value="#{personBacking.searchText}" id="searchText">
    		<a4j:support event="onkeyup" reRender="output"/>
    	</h:inputText>
     
    <h:outputText id="output" style="font-weight:bold" value="#{personBacking.searchText}"/>

    Merci !

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Bon, effectivement, ça confirme ce que je disais, à savoir que la mise à jour de l'outputText se fait en Ajax.

    Donc 2 possibilités :

    1. Laisser tel quel et utiliser le focus() sur le oncomplete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <h:inputText value="#{personBacking.searchText}" id="searchText">
        <a4j:support event="onkeyup" reRender="output" oncomplete="$('myForm:output').focus();"/>
    </h:inputText>
     
    <h:outputText id="output" style="font-weight:bold" value="#{personBacking.searchText}"/>
    2. Etant donné que les deux éléments pointent vers la même propriété, autant faire la mise à jour en Javascript directement, sans Ajax :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <h:inputText value="#{personBacking.searchText}" id="searchText" onkeyup="$('myForm:output').value = this.value;"/>
     
    <h:outputText id="output" style="font-weight:bold" value="#{personBacking.searchText}"/>
    Tu noteras dans les deux cas que je récupère l'élément outputText de cette façon : $('myForm:output'). Le $('...') est l'équivalent de document.getElementById('...') en Javascript. De plus, pour récupérer l'élément, je dois préfixé l'ID du composant par l'ID du formulaire qui le contient (il faut remplacer myForm par l'ID de ton formulaire).
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/11/2010, 09h55
  2. Réponses: 5
    Dernier message: 03/02/2004, 14h20
  3. [Drag & Drop] Mettre une fiche dans un panel
    Par corwin_d_ambre dans le forum Composants VCL
    Réponses: 5
    Dernier message: 12/01/2004, 10h46
  4. Mettre son programme dans Envoyer Vers ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 11
    Dernier message: 29/07/2003, 19h09
  5. Peut on mettre une image dans une BD MySQL ?
    Par maddog2032 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 25/07/2003, 16h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo