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 :

[JSF] Exécuter une méthode JavaScript avant l'exécution de la méthode action de h:commandButton


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Points : 14
    Points
    14
    Par défaut [JSF] Exécuter une méthode JavaScript avant l'exécution de la méthode action de h:commandButton
    Salut,
    j'ai besoin d'exécuter une méthode javascript avant d'exécuter la méthode action de mon "h:commandbutton".
    J'ai essayé ça, mais l'exécution passe directement à la méthode action ("#{clientBean.inscrire}) et la méthode testAlert ne s'exécute que lors du deuxième click sur le bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     <h:commandButton
    		id="cmdValider" value="inscription"
    		action="#{clientBean.inscrire}" 
                    onclick="testAlert()">
    </h:commandButton>
    Pour mieu comprendre mon code, j'ai fait une méthode testAlert qui va m'afficher une alert lorsque la valeur de l'attribut "alertDisplayed" de mon managed bean "clientBean" est égale true (je vais afficher une alert à l'utilisateur pour le renseigner que le login qu'il a saisi existe déjà dans ma base de données et qu'il doit resaisir un autre login).
    Voici le code de ma fonction testAlert:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <script type="text/javascript">
     
    			function testAlert() {
     
    				if (#{clientBean.alertDisplayed})
    				{
    					window.alert("login déjà utilisé");
    				}
     
    			}
    </script>
    Mon problème est comme j'ai dit, lorsque l'utilisateur tape un login qui existe dans ma base, l'alert ne s'affiche que lorsqu'il clique 2 fois sur le bouton
    S'il vous plait, j'ai besoin de vos aides
    merci d'avance

  2. #2
    Membre régulier Avatar de mr1azl
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 77
    Points : 107
    Points
    107
    I code

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    J'ai essayé le "oncomplete" mais la même chose

  4. #4
    Membre régulier Avatar de mr1azl
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 77
    Points : 107
    Points
    107
    Par défaut
    tu peux executer ta fonction testAlert() dans le du inputText (peut etre à l'aide de a4j:support)
    I code

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    J'ai aussi essayé de placer la méthode lors de l'évènement ou bien de l'input text du login, mais toujours la méthode testAlert() ne s'exécute qu'après un premier click sur le bouton.
    S'il vous plait aidez-moi à résoudre ce problème que je n'ai pas pu y trouver une explication

  6. #6
    Membre régulier Avatar de mr1azl
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 77
    Points : 107
    Points
    107
    Par défaut
    essaye de modifier ta fonction en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function testAlert() {
     
    					window.alert("login déjà utilisé");
     
    			}
    pour tester l'appel de la fonction, j'attends ta répponse
    I code

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    J'ai changé la méthode comme vous m'avez dit, ça marche l'alert se fait lors du premier click (j'ai appelé la méthode dans l'évènement onclick de mon bouton).

  8. #8
    Membre régulier Avatar de mr1azl
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2011
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 77
    Points : 107
    Points
    107
    Par défaut
    Dans ce cas essaye de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <a4j:support event="onchange"
    avec une methode java qui va mettre la valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     #{clientBean.alertDisplayed}
    dans une par exemple apres dans fonction javascript tu interroges la valeur de cette inputhidden !
    I code

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    merci mr1azl, lorsque j'ai fait le test sur le inputHidden, l'alert fonctionne correctement. Mon problème est résolu, merci autre fois

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

Discussions similaires

  1. [FAQ] Syntaxe JavaScript | (3) Comment exécuter une fonction après un délai ?
    Par ctrii dans le forum Contributions JavaScript / AJAX
    Réponses: 0
    Dernier message: 14/01/2013, 16h37
  2. Lien vers une ancre exécute une fonction JavaScript
    Par bailamos dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 04/04/2010, 01h24
  3. attendre un moment avant d'exécuter une action
    Par keviin dans le forum Langage
    Réponses: 2
    Dernier message: 07/10/2009, 10h45
  4. Exécuter une fonction Javascript OnMouseOver
    Par Friedrick dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 07/07/2008, 10h32
  5. Réponses: 2
    Dernier message: 16/07/2007, 16h04

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