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 :

Script de vérification de formulaire


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut Script de vérification de formulaire
    Bonjour, débutant en javascript, je voudrais tester chaque champs de mon formulaire, les consigner dans un tableau et si la longueur de mon tableau a changé, alors aucun Envoie sinon Envoie du formulaire. Le script que je vous soumet ne réagis pas à mon click.

    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
    60
    61
    62
     
    function test()
     
    { 
    /*tableau récuperation erreur*/ 
    erreur=new Array();
     
    	/*nom*/ 
    	nom=document.forms["fContact"].fnom.value; 
    	if(nom=="")
    	{ 
    	verif_nom="le Nom"; 
    	erreur.push(verif_nom);
    	} 
    		/*prenom*/ 
    		prenom=document.forms["fContact"].fprenom.value; 
    		if(prenom=="")
    		{ 
    		verif_nom="le Prénom"; 
    		erreur.push(verif_prenom);
    		} 
    				/*email*/ 
    				var mail = new RegExp ( "^\\w[\\w+\.\-]*@[\\w\-]+\.\\w[\\w+\.\-]*\\w$", "gi" ) ;
    				adresse = document.forms["fContact"].fmail.value; 
    				if (adresse.search(mail)== -1) 
    				{ 
    				verif_email="email invalide"; 
    				erreur.push(verif_email);
    				} 
     
    			/*téléphone*/ 
    			tel=document.forms["fContact"].fphone.value; 
    			if (tel!=""){ if(isNaN(tel))
    			{ 
    			verif_tel_fixe="n° de téléphone érroné"; 
    			alert(verif_tel_fixe);
    			erreur.push(verif_tel_fixe); 
    			} 
    			else
    			{ 
    			vide="téléphone"; 
    			erreur.push(vide);
    			} 
     
    	/*commentaires*/ 
    	com=document.forms["fContact"].fcoms.value; 
    	if((com=="")||(com=="Commentaires")){ 
    	verif_com="Commentaires"; 
    	erreur.push(verif_com); 
    	} 
     
    			//récuperation des erreurs dans le tableau et alert pour l'utilisateur 
    			if (erreur.length>0)
    			{
    			alert(erreur.join("\n"));
    			}
    			else
    			{
    			document.forms["fContact"].submit();
    			}
     
    }
    je joins le body afin que vous puissiez tester.

    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
     
    <body>
    <p align=center class="titre">ASSURANCE AUTO</p>
    <div class="news" align=center>
    <table width="900" height="80%" border="0" cellspacing="0" cellpadding="0" align="center"> 
    <tr> 
    <td><table width="575" height="550" border="0" cellspacing="0" cellpadding="0" align="center"> 
    <tr> 
    <td align=center> <img src="/images/Logo_Phenix.jpg" height="120" width="150"></img>
    <!--Début de formulaire--> 
    <form name="fContact" method="post" enctype="text/plain" action="mailto:xxxxxxxxx@yahoo.fr">
    <table width="540" border="0" cellspacing="0" cellpadding="0" align="center" class="medium">
    <tr> 
    <td>Nom : </td> 
    <td> <input type="text" name="fnom" size="20" maxlength="19"></td> 
    </tr> 
    <tr> 
    <td> Prénom : </td> 
    <td><input type="text" name="fprenom" size="20" maxlength="19"></td> 
    </tr> 
    <tr> 
    <td>Téléphone : </td> 
    <td><input name="fphone" type="text" size="10" maxlength="10"></td> 
    </tr>
    <tr> 
    <td> Email : </td> 
    <td><input type ="text" maxlength="30" size = "35"name="fmail"></td> 
    </tr> 
    <tr> 
    <td>Commentaires : </td> 
    <td><textarea name="fcom" cols="35" rows="5"></textarea>
    </td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td></td>
    <td><input type="button" value="Envoyer" onClick="test()"/>&nbsp;&nbsp;<input type="reset" value="Annuler"/> </td>
    </tr>
    </table>
    </form>
    </td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    <BR> 
    <p>
    <p>
    <p>
    <p>
    <p>
    <p align=center><A HREF="assureAuto.html">Retour à l'index</A></p>
    </div>
    </body>
    PS: si vous avez des expressions régulières pour la vérification de nom et prénom, je suis prenneur.
    Meric pour votre aide

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Salut,

    Pour cela, il me semble qu'il suffit de mettre l'appel de ta fonction sur onsubmit du formulaire. (ton bouton devient alors un input de type "submit")
    Par contre ta fonction doit renvoyer true ou false pour autoriser ou non l'envoi des données...

    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
    function test()
     
    { 
    ...
    
    			//récuperation des erreurs dans le tableau et alert pour l'utilisateur 
    			if (erreur.length>0)
    			{
    			alert(erreur.join("\n"));
    			return false;
    			}
    			else
    			{
    			//document.forms["fContact"].submit();
    			return true;
    			}
     
    
    }

  3. #3
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    Merci, je viens de m'en rendre compte. A force de trop avoir le nez dans les codes, on ne voit plus rien. Mais je teste et je vous le dis tout à l'heure.

    Le soucis, c'est que ma boîte de dialogue erreur ne s'affiche pas avec mes erreurs listées

  4. #4
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    j'ai revu mon code mais rien à faire.

    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
     
    function test()
     
    { 
    /*tableau récuperation erreur*/ 
    erreur=new Array();
     
    ...
    //récuperation des erreurs dans le tableau et alert pour l'utilisateur 
    			if (erreur.length>0)
    			{
    			alert(erreur.join("\n"));
    			document.write(erreur.join("\n"));
    			return false;
    			}
    return true;			
     
    }
    Toujours aucune boîte de dialogue mention le contenu de mon tableau
    alert(erreur.join("\n"));

  5. #5
    Membre éclairé Avatar de SPACHFR
    Profil pro
    Paaaaaa
    Inscrit en
    Février 2004
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paaaaaa

    Informations forums :
    Inscription : Février 2004
    Messages : 557
    Par défaut
    J'ai testé ton code avec les corrections que je t'ai dit, cela fonctionne (IE7 et FF)....

    Sauf ton test sur téléphone qui est à revoir car même si la zone est remplie ton tableau d'erreur affiche téléphone

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Réindente ton code, tu devrais trouver plus facilement l'accolade qui manque (probablement après le if/else imbriqué)

  7. #7
    Membre éclairé Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    Merci c'est gentil, j'utilise IE8 et j'avoue que j'ai du mal.
    J'installe firefox pour tester tout ça.

  8. #8
    Membre éclairé Avatar de SPACHFR
    Profil pro
    Paaaaaa
    Inscrit en
    Février 2004
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paaaaaa

    Informations forums :
    Inscription : Février 2004
    Messages : 557
    Par défaut
    Salut,

    1) Il manque une accolade de fermeture à la fonction test()

    2) Ensuite ta fonction va se dérouler, mais renvoie une erreur à la ligne ci-dessous.
    (valeur null ou n'est pas un objet)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    com=document.forms["fContact"].fcoms.value;
    a corriger par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    com=document.forms["fContact"].fcom.value;
    @+

  9. #9
    Membre éclairé Avatar de SPACHFR
    Profil pro
    Paaaaaa
    Inscrit en
    Février 2004
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paaaaaa

    Informations forums :
    Inscription : Février 2004
    Messages : 557
    Par défaut
    Citation Envoyé par SPACHFR Voir le message
    Salut,

    1) Il manque l' accolade de fermeture à la fonction test()

    2) Ensuite ta fonction va se dérouler, mais renvoie une erreur à la ligne ci-dessous.
    (valeur null ou n'est pas un objet)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    com=document.forms["fContact"].fcoms.value;
    a corriger par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    com=document.forms["fContact"].fcom.value;
    @+

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

Discussions similaires

  1. Vérification de formulaire avec regexp
    Par Shadow aok dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/08/2007, 11h57
  2. Classe ou script de validation des formulaires.
    Par __fabrice dans le forum Langage
    Réponses: 22
    Dernier message: 30/12/2005, 10h26
  3. Réponses: 5
    Dernier message: 12/07/2005, 17h04
  4. script de vérification
    Par break_71 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 08/06/2005, 17h24
  5. JavaScript de vérification de formulaire
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/02/2003, 13h48

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