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

JavaScript Discussion :

Vérifier l'état de différentes fonction pour dégriser un bouton


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 18
    Points : 10
    Points
    10
    Par défaut Vérifier l'état de différentes fonction pour dégriser un bouton
    Bonjour,

    Je suis actuellement en train de développer un site.

    Dans ma page d'inscription, j'utilise différentes fonctions javascript pour vérifier les différentes valeurs saisies par le visiteur (si le pseudo demandé est disponible, si l'adresse mail saisie est correcte...). Dans le cas où les condition sont remplies, les fonctions retourne "true".

    Là où je bloque, c'est que je voudrais que tant que les différentes conditions ne sont pas remplies, le bouton permettant de valider le formulaire soit grisé. Et si toutes les conditions sont remplies (donc si toutes les fonctions retournent "true") le bouton se dégrise.

    Mais comment faire pour vérifier que toutes les fonctions retournent "true" et à quel moment ?

    Merci d'avance pour vos réponses.

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    Tu peux déjà faire une fonction de validation globale qui renvoie true si la saisie globale est ok et false sinon (en effectuant un AND en appelant tes différentes fonctions de validations champ par champ).

    Ensuite, où appeler cette fonction ? Cela dépend de ta structure et du fonctionnement de ta page. On peut imaginer que tu appelles cette fonction quand l'utilisateur quitte une zone de saisie (par ex onblur), modifie des données (par ex onkeypress) , clique quelque part, etc...
    On peut aussi imaginer que tu souhaites plutôt appeler à intervalle régulier cette fonction (toutes les 2 secondes par exemple) et alors tu peux jouer avec setInterval

    A toi de voir,

    ERE

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Salut et merci pour ta réponse,

    En fait je commence depuis peu le javascript, et j'avoue avoir un peu de mal pour certaines syntaxes, notamment vérifier ce que retournent mes différentes fonctions.
    Est-ce qu'il suffirait par exemple de faire un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function ffveriffonctions()
    {
         if ((ffunctionverifnom == true) AND (ffunctionverifmail == true) AND ...
         {
               //alors le formulaire est valide, on envoie le formulaire
         }
         else
         {
              //alert("Le formulaire n'est pas valide"), on reste sur la page
         }
    }
    Ensuite, pour l'événement, je pensait le faire sur un "onSubmit", de cette façon je n'aurais pas à gérer le fait de griser ou non le bouton. Est-ce un bonne solution ?

    Merci d'avance pour votre réponse.

  4. #4
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Si tu ne veux pas gérer le bouton grisé alors tu peux faire comme tu dis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function ffveriffonctions()
    {
         if ((ffunctionverifnom() ) && (ffunctionverifmail())  ...
         {
               //alors le formulaire est valide, on envoie le formulaire
         }
         else
         {
              //alert("Le formulaire n'est pas valide"), on reste sur la page
         }
    }
    Au besoin tu peux écrire tout ton code et l'envoyer, on le vérifiera si problème.

    ERE

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Ok, merci pour les corrections, comme je l'ai dit j'ai un peu de mal avec la syntaxe...

    Donc je teste ça, et que ça marche ou pas je poste mon code.

    Merci

    [EDIT]
    Plutot que de double poster, j'édite mon message.

    Donc voilà le code (pour tester, je ne vérifie que 2 fonctions) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function fveriffontctions()
    {
    	if ((fverifcaptcha() ) && (fverifmail()) )
    	{
    		alert("tip top");
    	}
    	else
    	{
    		alert("pas tip top");
    	}
    }
    Dans le concret, que mes deux fonctions testées renvoient TRUE ou FALSE, j'ai n'ai aucun alert... et honnêtement là je comprends pas vraiment, j'ai pas l'impression qu'il y ai une erreur.

  6. #6
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Citation Envoyé par pilipi Voir le message
    Ok, merci pour les corrections, comme je l'ai dit j'ai un peu de mal avec la syntaxe...

    Donc je teste ça, et que ça marche ou pas je poste mon code.

    Merci

    [EDIT]
    Plutot que de double poster, j'édite mon message.

    Donc voilà le code (pour tester, je ne vérifie que 2 fonctions) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function fveriffontctions()
    {
    	if ((fverifcaptcha() ) && (fverifmail()) )
    	{
    		alert("tip top");
    	}
    	else
    	{
    		alert("pas tip top");
    	}
    }
    Dans le concret, que mes deux fonctions testées renvoient TRUE ou FALSE, j'ai n'ai aucun alert... et honnêtement là je comprends pas vraiment, j'ai pas l'impression qu'il y ai une erreur.

    C'est ... étonnant ... pour ne pas dire impossible ! (sur un if else il faut qu'il y ait au moins un cas qui s'exécute !)

    Peux tu passer ton code pour vérifier stp ?

    ERE

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Ok donc voici mon code :

    Le formulaire
    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
     
    echo '<form action="recupinscription.php" method="post" class="css" onSubmit="fveriffontctions()">
    	<fieldset>
    	<legend>Inscription</legend>
    	<label for="Login">Login:</label>
    	<input type="text" name="login" id="login" onBlur="fverifpseudo(this.value)" />
    	<br /><br />
    	<label for="mdp">Mot de passe:</label>
    	<input type="password" name="mdp2" id="mdp2" onBlur="fverifmdp(this.value, verifmdp.value)"/>
    	<br /><br />
    	<label for="verifmdp">Retapez le mot de passe:</label>
    	<input type="password" name="verifmdp" id="verifmdp" onBlur="fverifmdp(mdp2.value, this.value)" />
    	<br /><br />
    	<label for="mail">Mail:</label>
    	<input type="text" name="mail" id="mail" onBlur="fverifmail(this.value, verifmail.value)"/>
    	<br /><br />
    	<label for="verifmail">Retapez votre mail:</label>
    	<input type="text" name="verifmail" id="verifmail" onBlur="fverifmail(mail.value, this.value)"/>
    	<br /><br />
    	<label for="question">Question :</label>
    	<select name="questionchoisie">';
    			while ($ligne_question_secrete = mysql_fetch_array($nom_question_secrete))
    			{
    				echo '<option value="'.$ligne_question_secrete['num_quest_secrete'].'">'.$ligne_question_secrete['intitule_quest'].'</option>';
    			}
    	echo '</select>
    	<br /><br />
    	<label for="reponse">Réponse:</label>
    	<input type="text" name="reponse_quest" id="reponse_quest" />
    	<br /><br />
    	<label for="captcha">Recopiez les caractères des l\'image ci-contre:</label>
    	<img src="captcha.php" alt="Captcha" />
    	<br /><br />
    	<label for="reponse">Réponse:</label>
    	<input type="text" name="repcaptcha" onKeyUp="fverifcaptcha(this.value)"/>
    	<br /><br />
    	<div align="center"><input type="submit" value="Soumettre" /></div>
    	</fieldset>
    	<br />
    </form>';
    L'appel de la fonction est faîte correctement ?
    Je n'ai pas mis mes fonctions javascript, puisque j'ai testé et de toute façon elles retournent bien true ou false. Mais si vous avez quand même besoin de les voir, je les mettrai

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    J'ai finalement trouvé le problème, qui était plus une erreur d'inattention qu'autre chose.

    En fait, dans ma fonction quand je cherche à vérifier ce que retournent mes différentes fonctions, je ne repasse pas les paramètre dont ont besoin ces fonction.

    Voici donc ma fonction qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function fveriffontctions(login, mdp, confirmmdp, mail, confirmmail, captcha)
    {
    	if ( (fverifpseudo(login)) && (fverifmdp(mdp, confirmmdp)) && (fverifmail(mail, confirmmail)) && (fverifcaptcha(captcha)) )
    	{
    		alert("tip top");
    	}
    	else
    	{
    		alert("pas tip top");
    	}
    }
    En tout cas, merci emmanuel.remy pour t'être intéressé à mon soucis !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/03/2013, 11h04
  2. [PHP-JS] fonction pour désactiver un bouton
    Par Titus94120 dans le forum Langage
    Réponses: 7
    Dernier message: 28/05/2008, 14h58
  3. Réponses: 1
    Dernier message: 26/11/2006, 00h46
  4. Réponses: 4
    Dernier message: 07/03/2006, 15h54
  5. Réponses: 4
    Dernier message: 29/09/2005, 11h50

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