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 :

Valider 2 conditions dans un formulaire avec un seul bouton soumit


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 15
    Points : 17
    Points
    17
    Par défaut Valider 2 conditions dans un formulaire avec un seul bouton soumit
    Bonjour,


    Je cherche a faire une fonction en javascript pour valider un formulaire en 2 temps, c'est-a-dire en plus de la déjà habituel vérification des champs vides...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(trim(mail.value) == "")
    {
    	alert("Veuillez entrer votre mail SVP");
    	return false;
    }
    donc, j'ai dans mon 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
    41
    42
     
    <form id="concours" name="concours" action="concours_exe.php" method="post" onsubmit="return verification_champs();" style="margin:0; padding:10px;">
     <strong class="titre_rubrique">Vous êtes déjà membre du club <img src="../images/concours/petit_logo.gif" align="absmiddle" /> ?</strong><br />
     Entrez ci-dessous vos identifiants puis répondez au questionnaire pour participer.<br />
      <tr>
        <td align="center">Identifiant :<br /><input type="text" name="identifiant" id="identifiant" /></td>
        <td align="center">Mot de passe :<br /><input type="password" name="password" id="password" /></td>
      </tr>
    		<strong class="titre_rubrique">Vous n'êtes pas encore membre du club <img src="../images/concours/petit_logo.gif" align="absmiddle" /> ?</strong><br />
              Remplissez les champs du formulaire ci-dessous puis répondez au questionnaire pour participer.<br /><br />
              <br />
              <table width="600" border="0" cellspacing="5" cellpadding="0" align="center">
              	<tr>
                	<td>&nbsp;</td>
                	<td align="center">Nom :<br /><input type="text" name="nom" id="nom" value="<?php echo isset($_SESSION['nom'])?$_SESSION['nom']:''?>"/></td>
                    <td align="center">Prénom :<br /><input type="text" name="prenom" id="prenom" value="<?php echo isset($_SESSION['prenom'])?$_SESSION['prenom']:''?>"/></td>
                    <td>&nbsp;</td>
                </tr>
                <tr>
                	<td align="center">Etablissement :<br /><input type="text" name="etablissement" id="etablissement" value="<?php echo isset($_SESSION['etablissement'])?$_SESSION['etablissement']:''?>"/></td>
                    <td align="center">Adresse :<br /><input type="text" name="adresse" id="adresse" value="<?php echo isset($_SESSION['adresse'])?$_SESSION['adresse']:''?>"/></td>
                    <td align="center">Code Postal :<br /><input type="text" name="cp" id="cp" value="<?php echo isset($_SESSION['cp'])?$_SESSION['cp']:''?>"/></td>
                    <td align="center">Ville :<br /><input type="text" name="ville" id="ville" value="<?php echo isset($_SESSION['ville'])?$_SESSION['ville']:''?>"/></td>
                </tr>
                <tr>
                	<td align="center"></td>
                    <td align="center">Téléphone :<br /><input type="text" name="tel" id="tel" value="<?php echo isset($_SESSION['tel'])?$_SESSION['tel']:''?>"/></td>
                    <td align="center">E-mail :<br /><input type="text" name="mail" id="mail" value="<?php echo isset($_SESSION['mail'])?$_SESSION['mail']:''?>"/></td>
                    <td align="center"></td>
                </tr>
                <tr>
                	<td colspan="4" align="center"><strong>Votre activité :</strong><br />
                		<input name="categorie" type="radio" id="categorie" value="hotel" <?php echo isset($_SESSION['categorie'])?$_SESSION['categorie']:'' ?>/> Hôtel&nbsp;&nbsp;&nbsp;
                		<input name="categorie" type="radio" id="categorie" value="resto" <?php echo isset($_SESSION['categorie'])?$_SESSION['categorie']:'' ?>/> Restaurant&nbsp;&nbsp;&nbsp;
                		<input name="categorie" type="radio" id="categorie" value="autres" <?php echo isset($_SESSION['categorie'])?$_SESSION['categorie']:'' ?>/> Autres
                	</td>
                </tr>
               </table>
    ...
     
               <p align="center"><input type="submit" name="Submit" value="Valider mes réponses" /></p>
              </form>

    Résumant, ce que je voudrais c'est si le client est déjà membre, il va taper son login et mot de passe et pas les autres champs, si c'est un nouveau membre, il remplit tous champs sauf login et mot de passe. La validation doit se faire avec un seul bouton soumit, sachant que mes champs, nom, prenom, etablissement, adresse, cp, ville, tel, mail et categorie son deja verifie par:

    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
    function verification_champs()
    {
    var nom = document.getElementById("nom");
    var prenom = document.getElementById("prenom");
    var etablissement = document.getElementById("etablissement");
    var adresse = document.getElementById("adresse");
    var cp = document.getElementById("cp");
    var ville = document.getElementById("ville");
    var tel = document.getElementById("tel");
    var mail = document.getElementById("mail");
    var radio_rep = document.getElementsByName("categorie");
    var checkbox_reglement = document.getElementById("conditions_reglement");
    var checkbox_generales = document.getElementById("conditions_generales");
     
    	var test=0;
     
    	if(trim(nom.value) == "")
    	{
    		alert("Veuillez entrer votre nom SVP");
    		return false;
    	}
    	if(trim(prenom.value) == "")
    	{
    		alert("Veuillez entrer votre prénom SVP");
    		return false;
    	}
    	if(trim(etablissement.value) == "")
    	{
    		alert("Veuillez entrer votre etablissement SVP");
    		return false;
    	}
    	if(trim(adresse.value) == "")
    	{
    		alert("Veuillez entrer votre adresse SVP");
    		return false;
    	}
    	if(trim(cp.value) == "")
    	{
    		alert("Veuillez entrer votre code postal SVP");
    		return false;
    	}
    	if(trim(ville.value) == "")
    	{
    		alert("Veuillez entrer votre ville SVP");
    		return false;
    	}
    	if(trim(tel.value) == "")
    	{
    		alert("Veuillez entrer votre téléphone SVP");
    		return false;
    	}
    	if(trim(mail.value) == "")
    	{
    		alert("Veuillez entrer votre mail SVP");
    		return false;
    	}
     
    	if(trim(mail.value) != "")
    	{
    		ok=is_mail_correct(mail.value);
    		if(!ok)
    		{
    			alert("Email entre invalide.");
    			return false;
    		}
    	}
     
    	for(var i=0;i<radio_rep.length;i++)
    	{
    		if(radio_rep[i].checked)
    		{
    			test+=1;
    		}
    	}
    	if(test ==0)
    	{
    		alert ("Vous n'avez pas choisi votre activité.");
    		return false;
    	}
    Merci d'avance pour votre aide

  2. #2
    Membre averti Avatar de Sacha999
    Inscrit en
    Mars 2007
    Messages
    294
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mars 2007
    Messages : 294
    Points : 350
    Points
    350
    Par défaut
    rajoute un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnClick="verificationQueToutEsOkAvantDeSoumettre();"
    dans ton bouton submit

    Cette fonction devra retourner false si les champs ne sont pas OK, ce qui aura pour consequence de ne pas envoyé le formulaire au site, ou alors retourner true si tout est OK, qui aura pour conséquence de soummetre le formulaire
    Le forum c'est trop génial

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Merci pour ta réponse,

    en fait, je n'ai pas eu besoin de mettre l'événement OnClick dans mon bouton soumit, juste un onsubmit="return verification_champs();" dans mon <form, et puis j'ai tout mit dans une même fonction

    Voici tout mon code javascript pour si quelqu'un veut s'en servir un jour ou l'autre

    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
     
    <script language="javascript">
     
    var regExpBeginning = /^\s+/;
    var regExpEnd       = /\s+$/;
    function trim(aString)
    {
        return aString.replace(regExpBeginning, "").replace(regExpEnd, "");
    }
     
    var mail = /^[\w\-]+(\.[\w\-]+)*@[\w\-]+(\.[\w\-]+)*\.[\w\-]{2,}$/;
     
    function is_mail_correct(valeur_champs) 
    {
    reponse=mail.test(valeur_champs)
    	if (reponse) 
    	{
    		return true;
    	}
    	else 
    	{
    		return false;
    	}
    }
     
    function verification_champs()
    {
    var identifiant = document.getElementById("identifiant");
    var password = document.getElementById("password");
    var nom = document.getElementById("nom");
    var prenom = document.getElementById("prenom");
    var etablissement = document.getElementById("etablissement");
    var adresse = document.getElementById("adresse");
    var cp = document.getElementById("cp");
    var ville = document.getElementById("ville");
    var tel = document.getElementById("tel");
    var mail = document.getElementById("mail");
    var radio_rep = document.getElementsByName("categorie");
    var checkbox_reglement = document.getElementById("conditions_reglement");
    var checkbox_generales = document.getElementById("conditions_generales");
     
    	var test=0;
     
    	//alert (identifiant.value+" ## "+password.value); return false;
    	if(identifiant.value == "" && password.value == "")
    	{
     
    		 	if(trim(nom.value) == "")
    			{
    				alert("Veuillez entrer votre nom SVP");
    				return false;
    			}
     
    			if(trim(prenom.value) == "")
    			{
    				alert("Veuillez entrer votre prénom SVP");
    				return false;
    			}
     
    			if(trim(etablissement.value) == "")
    			{
    				alert("Veuillez entrer votre etablissement SVP");
    				return false;
    			}
     
    			if(trim(adresse.value) == "")
    			{
    				alert("Veuillez entrer votre adresse SVP");
    				return false;
    			}
     
    			if(trim(cp.value) == "")
    			{
    				alert("Veuillez entrer votre code postal SVP");
    				return false;
    			}
     
    			if(trim(ville.value) == "")
    			{
    				alert("Veuillez entrer votre ville SVP");
    				return false;
    			}
     
    			if(trim(tel.value) == "")
    			{
    				alert("Veuillez entrer votre téléphone SVP");
    				return false;
    			}
     
    			if(trim(mail.value) == "")
    			{
    				alert("Veuillez entrer votre mail SVP");
    				return false;
    			}
     
    			if(trim(mail.value) != "")
    			{
    				ok=is_mail_correct(mail.value);
    				if(!ok)
    				{
    					alert("Email entre invalide.");
    					return false;
    				}
    			}
     
    			for(var i=0;i<radio_rep.length;i++)
    			{
    				if(radio_rep[i].checked)
    				{
    					test+=1;
    				}
    			}
     
    			if(test ==0)
    			{
    				alert ("Vous n'avez pas choisi votre activité.");
    				return false;
    			}
     
    			if(checkbox_reglement.checked != true)
    			{
    				alert("Vous devez accepter les termes de participation au jeu.");
    				return false;
    			}
     
    			if(checkbox_generales.checked != true)
    			{
    				alert("Vous devez déclarer avoir pris connaissance de la charte.");
    				return false;
    			}
     
    			for(i=0;i<3;i++)
    			{
    			var email_ami = document.getElementsByName("ami"+(i+1));
    				if(trim(email_ami[0].value) != "")
    				{
    					ok=is_mail_correct(email_ami[0].value);
    					if(!ok)
    					{
    						alert("E-mail ami "+(i+1)+" est invalide");
    						return false;
    					}
    				}
    			}
    	}
     
    	if(identifiant.value == "" && password.value != "")
    	{
    		alert("Merci de rentrer votre login SVP");
    		return false;	
    	}
     
    	if(identifiant.value != "" && password.value == "")
    	{
    		alert("Merci de rentrer votre password SVP");
    		return false;
    	}
     
    	if(identifiant.value != "" && password.value != "")
    	{
     
    			if(checkbox_reglement.checked != true)
    			{
    				alert("Vous devez accepter les termes de participation au jeu.");
    				return false;
    			}
     
    			for(i=0;i<3;i++)
    			{
    			var email_ami = document.getElementsByName("ami"+(i+1));
    				if(trim(email_ami[0].value) != "")
    				{
    					ok=is_mail_correct(email_ami[0].value);
    					if(!ok)
    					{
    						alert("E-mail ami "+(i+1)+" est invalide");
    						return false;
    					}
    				}
    			}
    	}
    	return true;
    }
    </script>

  4. #4
    Membre averti Avatar de Sacha999
    Inscrit en
    Mars 2007
    Messages
    294
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mars 2007
    Messages : 294
    Points : 350
    Points
    350
    Par défaut
    oui y'avais cette facon aussi
    Le forum c'est trop génial

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

Discussions similaires

  1. Envoyer plusieurs formulaires avec un seul bouton
    Par patheo2 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 17/03/2011, 11h08
  2. [1.x] Afficher et valider plusieurs formulaires avec un seul bouton
    Par alexou dans le forum Symfony
    Réponses: 2
    Dernier message: 24/08/2010, 11h04
  3. Valider les 2 formulaires avec un seul bouton
    Par hoangeric dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/07/2009, 09h44
  4. Valider plusieurs formulaires avec un seul bouton
    Par Bam chika wah wah! dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/04/2009, 12h53
  5. 2 Formulaire avec 1 seul bouton
    Par boby15000 dans le forum Langage
    Réponses: 4
    Dernier message: 23/08/2008, 15h27

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