Partage
  • Partager sur Facebook
  • Partager sur Twitter

Valider un formulaire

Validation champs mot de passe et age

Sujet résolu
    4 avril 2009 à 0:00:56

    Bonjour,

    Voilà je commence le javascript et j'ai quelque problème sur des vérifications malgré les tutos.

    Mon code HTML (pas entier) :


    <table>
    	<tr>
    		<td>Pseudo :</td>
    		<td><input type="text" name="pseudo" onchange="VerificationPseudo();" id="Pseudo" /></td>
    		<td></td>
    	</tr>
    	<tr>
    		<td>Mot de passe :</td>
    		<td><input type="text" name="Pass1" size="30" onchange="VerificationPass1();" id="Pass1" /></td>
    		<td></td>
    	</tr>
    		<tr>
    		<td>Retaper le mot de passe :</td>
    		<td><input type="text" name="Pass2" size="30" onchange="VerificationPass2();" id="Pass2" /></td>
    		<td></td>
    	</tr>
    		<tr>
    		<td>E-mail :</td>
    		<td><input type="text" name="email" size="30" onchange="VerificationMail();" id="Mail" /></td>
    		<td></td>
    	</tr>
    	<tr>
    		<td>Âge :</td>
    		<td><input type="text" name="age" size="2" onchange="VerificationAge();" id="Age" /> ans.</td>
    		<td></td>
    	</tr>
    	<tr>
    		<td><input type="submit" value="Valider" /></td>
    	</tr>
    </table>
    


    Mon code javascript (entier) :

    <script>
    function AfficherErreur(Champ)
    	Champ.style.backgroundColor = "red";
    
    function EnleverErreur(Champ)
    	Champ.style.backgroundColor = "";
    
    function VerificationPseudo()
    {
    	Pseudo = document.getElementById("Pseudo"); // On récupère la valeur du champ Pseudo
    	if(Pseudo.value.length < 4 || Pseudo.value.length > 15)
    		AfficherErreur(Pseudo); // Non valide donc afficher erreur
    	else
    		EnleverErreur(Pseudo); // Valide donc enlever l'erreur
    }
    
    function VerificationPass1()
    {
    	Pass1 = document.getElementById("Pass1"); // On récupère la valeur du champ Pass1
    	if(Pass1.value.length < 2 || Pass1.value.length > 15)
    		AfficherErreur(Pass1); // Non valide donc afficher erreur
    	else
    		EnleverErreur(Pass1); // Valide donc enlever l'erreur
    }
    
    function VerificationPass2()
    {	
    	Pass1 = document.getElementById("Pass1"); // On récupère la valeur du champ Pass1
    	Pass2 = document.getElementById("Pass2"); // On récupère la valeur du champ Pass2
    	if(Pass1 != Pass2)
    		AfficherErreur(Pass2); // Non valide donc afficher erreur
    	else
    		EnleverErreur(Pass2); // Valide donc enlever l'erreur
    }
    
    function VerificationMail()
    {
    	Mail = document.getElementById("Mail");// On récupère la valeur du champ Mail
    	
    	var MailValide = /^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/; // Format valide d'un Mail
    	
    	if(!MailValide.test(Mail.value))
    		AfficherErreur(Mail); // Non valide donc afficher erreur
    	else
    		EnleverErreur(Mail); // Valide donc enlever l'erreur
    }
    
    function VerificationAge()
    {
    	tt = document.getElementById("Age");
    	var Age2 = parseInt(tt.value);
    	if(isNaN(Age2) || Age2 < 6 || Age2 > 100)
    		AfficherErreur(Age); // Non valide donc afficher erreur
    	else
    		EnleverErreur(Age); // Valide donc enlever l'erreur
    }
    </script>
    


    Et donc mon problème est pour la vérification du mot de passe (function VerificationPass2()) ne marche par correctement et idem pour la vérification de l'âge.

    De plus, est il possible d'afficher une image dans un tableau html suivant si le champs est bon ou pas ? Si oui serait il possible de m'aiguiller.

    Merci d'avance,
    A bientôt
    • Partager sur Facebook
    • Partager sur Twitter
      4 avril 2009 à 0:32:40

      Tu as oublié les "value" dans la condition pour le Pass2. Par contre j'ai pas compris l'erreur de l'âge... pour moi tout fonctionne... ?

      Et donc pour l'histoire de l'image pourquoi ne pas utiliser tout simplement innerHTML avec une chaîne toute bête "<img src='blabla.png' alt='texte alternatif' />"
      • Partager sur Facebook
      • Partager sur Twitter
        4 avril 2009 à 1:10:52

        Merci de ta réponse, mais pourrait tu détailler pour les "value" que j'ai oublié car je ne vois pas trop.

        Pour le innerHTML, sa marche niquel, j'avais pas encore appris ;)

        Une autre question, Est il possible de récupérer une variable php pour la mettre dans une variable javascript ?

        Merci d'avance,
        A bientôt
        • Partager sur Facebook
        • Partager sur Twitter
          4 avril 2009 à 2:19:02

          ... ligne 30 de ton script :

          if(Pass1.value != Pass2.value)
          


          Ces value là... ^^

          Pour ce qui est du PHP, il te suffit de faire :
          var nombre = <?php echo $nb; ?>;
          // ou
          var chaine = "<?php echo $str; ?>";
          


          Tout simplement.
          • Partager sur Facebook
          • Partager sur Twitter
            4 avril 2009 à 10:37:00

            function VerificationAge()
            {
            	tt = document.getElementById("Age");//mets un var.. t'as pas besoin d'une variable globale...
            	var Age2 = parseInt(tt.value);//évites de mettre des majuscules dans els noms de variables...
            	if(isNaN(Age2) || Age2 < 6 || Age2 > 100)// ça ça va...
            		AfficherErreur(Age); // là tu envois une variables même pas définie '-_- c'est Age2 la variable qui contient la valeur... et tt la variable qui contient l'objet... donc AfficherErreur(tt); 
            	else
            		EnleverErreur(Age); //idem... c'est pas Age... c'est tt
            }
            

            <acronym title="Post Scriptum">P.S.</acronym>: Et mets toujours des acolades...
            • Partager sur Facebook
            • Partager sur Twitter
              4 avril 2009 à 11:55:04

              Ok en effet sa marche mieux ;)

              Merci de votre aide.

              J'aurais à nouveau besoin de vous :p

              Je voudrais que le bouton valider le formulaire ne soit activer seulement quand les champs sont remplis correctement et règlement accepter lorsqu'il coche un checkbox.

              Merci d'avance
              • Partager sur Facebook
              • Partager sur Twitter
                4 avril 2009 à 13:48:21

                Bah pour vérifier tous les champs, tu pourrais par exemple vérifier que le background est différent de "red"...

                Pour le checkbox, il faut que tu testes la propriété "checked".

                Et enfin pour le submit, je crois qu'il faut que tu mettes la propriété "disabled" à la valeur... true pour le griser. Et à false pour le réactiver.

                Tu as l'air d'avoir des bases en JS, donc je pense que tu peux faire ça tout seul.

                Mais n'hésites pas si tu rencontres des difficultés. ;)
                • Partager sur Facebook
                • Partager sur Twitter
                  4 avril 2009 à 16:14:50

                  Il me reste qu'un seul problème.

                  C'est savoir quand appeler ma fonction qui va vérifier le formulaire entier afin de savoir si je dois grisé ou non le bouton.

                  Cela concerne plus la logique mais la je vois pas :s

                  Encore merci ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    4 avril 2009 à 19:19:53

                    Citation : ekudarius

                    Il me reste qu'un seul problème.
                    C'est savoir quand appeler ma fonction qui va vérifier le formulaire entier afin de savoir si je dois grisé ou non le bouton.


                    Citation : Golmote

                    Bah pour vérifier tous les champs, tu pourrais par exemple vérifier que le background est différent de "red"...


                    :-°
                    • Partager sur Facebook
                    • Partager sur Twitter
                      4 avril 2009 à 19:34:06

                      Merci j'avais compris xavierm02, le truc que je veut dire c'est que sa se sera le contenue de ma fonction mais je ne voit pas quand appeler la fonction O_o'

                      Soit je le fait à chaque fin de vérification d'un champ donc sa va être long à chaque fois.

                      Soit je fait une boucle continue et sa va charger en permanence.

                      Bref peu être une solution plus simple ? ;)

                      Enfin merci quand même.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        4 avril 2009 à 19:48:58

                        Tu rajoutes
                        onsubmit="return tafonction()"

                        à ton form...
                        Et dans ta fonction, si tout est bon , tu fais return true et sinon tu fais return false
                        Ce qui fera que si tout n'est pas bon, le onsubmit va retourner false et l'envoi vas être annulé...


                        Il te faut quand même vérifier en PHP par la suite pour le traitement des données...
                        • Partager sur Facebook
                        • Partager sur Twitter
                          4 avril 2009 à 20:47:15

                          Ok en faite moi je voulais dégriser le bouton submit seulement si tout était correct.

                          Pourquoi vérifier en php ce qui est déjà fait par JavaScript ?

                          Désolé ne connait pas encore tout ;)

                          Merci d'avance
                          • Partager sur Facebook
                          • Partager sur Twitter
                            5 avril 2009 à 7:51:06

                            Pour dégriser le submit, le meilleur moyen serait d'appeler une fonction qui vérifie tout après chaque changement de valeur d'un élément du formulaire...
                            Bien sûr, tu le laisses dégrisé pour ceux qui n'ont pas le javascript... et tu le grises avec du javascript au onload...

                            Pour ce qui estdu traitement PHP, il te faut savoir que tout ce qui est fait en javascript/HTML/CSS est chageable...
                            Simplement en écrivant quelquechose dans la barre d'adresse, on peut rendre un élément visible, désactiver une fonction javascript etc.
                            Il se peut donc qu'un formulaire non-valide pour toi soit validé... D'où l'intérêt de vérifier par PHP...
                            • Partager sur Facebook
                            • Partager sur Twitter
                              5 avril 2009 à 10:57:01

                              Ok la c'est plus clair.

                              Merci beaucoup,
                              A bientôt
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Valider un formulaire

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown