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 :

pb action sur commandButton au clic uniquement


Sujet :

JSF Java

  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 27
    Par défaut pb action sur commandButton au clic uniquement
    Bonjour,

    J'ai un bouton dont j'aimerai que l'action se déclenche uniquement lorsque l'on clic dessus.
    En effet, un appuie sur la touche "entrée" enclenche l'action du bouton.
    J'ai essayé d'utiliser ajax avec: event="onclick" mais ca ne fonctionne pas.

    Je souhaiterais donc que dans ma page, l'appuie sur la touche entrée n'enclenche aucune action.

    Merci

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    tu parle de "entrée" à quel moment? Quand le bouton à la focus? Impossible que je sache. Pour les champs d'input, il y a moyen de jouer avec les évènement clavier pour le faire (fait un recherche dans les section html ou javascript pour trouver, ce problème à déjà été soulevé plein de fois)

  3. #3
    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 : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Tu peux désactiver la touche entrée en Javacript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        /**
         * Disable the usage of the Enter key (code = 13) except in textarea, and the backspace (code = 8) except in input and textarea.
         */
        function disableEnterKey(evt) {
            var evt  = (evt) ? evt : ((event) ? event : null);
            if (evt.keyCode == 13) {
                var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);            
                var obj = ((node != null) && (node.type == "textarea"));
                return obj;
            }
        }
     
        document.onkeydown = disableEnterAndBackspaceKeys;
    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

  4. #4
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 27
    Par défaut
    Je clic tout simplement a un endroit lambda de ma page donc aucun élément n'est activé et j'appuie sur "entrée".

    Pour les évènements des input je vais regarder merci

    Par contre en ce qui concerne le javascript, toute la page est en JSF. Je n'utilise pas de javascript. Seulement les actions communes accessibles en JSF

  5. #5
    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 : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Tu n'utilises pas Javascript directement, mais vu que le rendu final est du HTML, il y a du Javascript dedans aussi (généré par les divers composants JSF que tu utilises).

    Tu peux ajouter ce script dans un fichier Javascript, par exemple toto.js.
    Ensuite, tu l'ajoutes dans ta page (ou dans les templates de ta page).
    Ainsi, ce code sera exécuté quelque soit la page où se trouve l'utilisateur...
    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

  6. #6
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 27
    Par défaut
    Oui justement, je souhaiterai éviter d'écrire du java script

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    pas possible en pur html, car le html en lui même ne fourni aucune provision pour désactiver ce comportement qui est laissé au libre arbitre du navigateur.

  8. #8
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 27
    Par défaut
    Oh ben mince alors !

    Je penses que je n'ai pas donné assez d'information donc je complète ma requête au cas ou !
    J'ai un inputText de type Calendar. Quand je rentre la date manuellement et que j'appuie sur la touche entrée l'action associé à ma balise "onchange" est appelé mais juste après l'action du premier bouton est enclenché.
    Effectivement, je souhaiterais que la méthode appelé par "onchange" soit exécutée, mais qu'il ne se passe plus rien après.
    J'ai déjà essayer la commande focus mais ça ne fonctionne pas.

    bon j'espère que vos réponses seront plus optimistes

    Merci d'avance

  9. #9
    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 : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Citation Envoyé par mimy17 Voir le message
    J'ai un inputText de type Calendar. Quand je rentre la date manuellement et que j'appuie sur la touche entrée l'action associé à ma balise "onchange" est appelé mais juste après l'action du premier bouton est enclenché.
    Effectivement, je souhaiterais que la méthode appelé par "onchange" soit exécutée, mais qu'il ne se passe plus rien après.
    J'ai déjà essayer la commande focus mais ça ne fonctionne pas.
    Tu pourrais nous montrer ton code JSF ?
    Le onchange appelle un code Javascript ! Donc toi qui ne veut pas faire de Javascript, c'est un peu raté là, non ?
    Ou alors ton onchange est lié à un <a4j:support> ?

    De toutes façons, le fait de taper sur la touche Entrée va faire comprendre au navigateur que tu souhaites soumettre le formulaire. Le code Javascript que j'ai donné plus tôt montre comment désactiver à coup sûr cette action.
    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

  10. #10
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 27
    Par défaut
    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <rich:calendar id="dateEffet" value="#{calendrier.dateDebut}" enableManualInput="true" datePattern="dd/MM/yyyy" popup="true">
       <a4j:support action="#{calendrier.dateDebutAction}" event="onchanged" />
    </rich:calendar>
    Bon ben apparemment il n'y a pas d'alternative, mis a part le javascript !

    Merci pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affecter une action sur le clic de la molette
    Par Djang0 dans le forum C++Builder
    Réponses: 1
    Dernier message: 27/08/2009, 17h59
  2. Réponses: 2
    Dernier message: 26/05/2008, 15h27
  3. 2 actions différentes avec un clic sur une image
    Par beegees dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 26/02/2008, 19h37
  4. Créer une action sur clic long
    Par louis_lab dans le forum C++/CLI
    Réponses: 4
    Dernier message: 01/03/2007, 14h17
  5. Problème message d'erreur et action sur clic
    Par rangernoir dans le forum Access
    Réponses: 5
    Dernier message: 26/09/2005, 12h10

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