Validation formulaire

yusufrugby -  
Alain_42 Messages postés 5413 Statut Membre -
Bonjour a tt,
je veux faire un validation des champs mais je ne trouve pas les erreurs de mon code voila mon code :
<html>
<head>
<script language="javascript" type="text/javascript">
function validation()
{

var email = document.formulaire.email.value;
var nom = document.formulaire.nom.value;
var prenom = document.formulaire.prenom.value;
var pseudo = document.formulaire.pseudo.value;
var pattern;
var resultat=new array();
switch(type){
case 'mail':
pattern= new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');
if(pattern.test(email)){
resultat['success']=true;
}else
{
resultat['success']=false;
resultat['error']=' adresse Email est invalide';
}
break;
case 'String':
pattern= /^[A-Za-z]+$/;
if(pattern.test(nom)){
resultat['success']=true;
}else
{
resultat['success']=false;
resultat['error']=' nom est invalide';
}
case 'String':
pattern= /^[A-Za-z]+$/;
if(pattern.test(prenom)){
resultat['success']=true;
}else
{
resultat['success']=false;
resultat['error']=' prenom est invalide';
}
break;
case 'pseudo':
pattern= /^[A-Za-z0-9]+$/;
if(pattern.test(prenom)){
resultat['success']=true;
}else
{
resultat['success']=false;
resultat['error']=' le champ est invalide';
}
break;
}
//alert (" / "+return resultat);
for(i==0;i<resultat.length;i++){
if(resultat['success']=false){
alert(resultat['error']);
}
}
return resultat;
}

</script>
</head>
<title>
tp javascript
</title>
<body>
Ce formulaire va vous inscrire a la mailing-list de l'éditeur JavaScript.<br />
<form action="" method="post" name="formulaire" onsubmit="return validation();">
@mail :<input type="text" name="email" alt="mail" size="15"><br>
Nom : <input type="text" name="Nom" alt="string" size="15"><br>
PreNom :<input type="text" name="PreNom" alt="string" size="15"><br>
Pseudo :<input type="text" name="Pseudo" alt="pseudo" size="15"><br>
<input type="submit" name="envois" value="Envoyer">  
<input type="reset" value="Effacer" ><noscript><a href="http://www.editeurjavascript.com/countus/">compteur live</a></noscript>
</body>
</html>

aider moi svp et merci d'avance

2 réponses

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    Une solution:

    <html>
    <head>
    <script language="javascript" type="text/javascript">
    function validation()
    {
    	var pattern;
    	//pour chaque champ on test si non conforme, si non conforme return false empêche l'envoi du formulaire
    	
    	//mail 
    	pattern= new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');
    	var email = document.formulaire.email.value;
    	if(!pattern.test(email)){
    		alert("Adresse email non valide !");
    		return false; //on sort de la fonction et empeche l'envoi du formulaire
    	}
    	
    	//nom
    	var nom = document.formulaire.nom.value;
    
    	pattern= /^[A-Za-z]+$/;
    	if(!pattern.test(nom)){
    		alert(" nom est invalide!");
    		return false;
    	}
    
    	//tu fais pareil pour les autres champs
    	var prenom = document.formulaire.prenom.value;
    	var pseudo = document.formulaire.pseudo.value;
    
    	//arrivé la, on en a trouvé aucun non conforme donc on renvoie true ce qui autorise l'envoi du formulaire
    	return true;
    }
    
    </script>
    </head>
    <title>
    tp javascript
    </title>
    <body>
    Ce formulaire va vous inscrire a la mailing-list de l'éditeur JavaScript.<br />
    <form action="" method="post" name="formulaire" onsubmit="return validation();">
    @mail :<input type="text" name="email" alt="mail" size="15"><br>
    Nom : <input type="text" name="Nom" alt="string" size="15"><br>
    PreNom :<input type="text" name="PreNom" alt="string" size="15"><br>
    Pseudo :<input type="text" name="Pseudo" alt="pseudo" size="15"><br>
    <input type="submit" name="envois" value="Envoyer">  
    <input type="reset" value="Effacer" ><noscript><a href="http://www.editeurjavascript.com/countus/">compteur live</a></noscript>
    </body>
    </html>
    0
  2. Alain_42 Messages postés 5413 Statut Membre 904
     
    une autre solution dans l'esprit de ton script initial avec un array, et toutes les erreurs d'un coup

    <html>
    <head>
    <script language="javascript" type="text/javascript">
    function validation()
    {
    	var pattern;
    	var resultat=new array();
    	resultat['success']=true;
    	//pour chaque champ on test si non conforme, si non conforme return false empêche l'envoi du formulaire
    	
    	//mail 
    	pattern= new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');
    	var email = document.formulaire.email.value;
    	
    	if(!pattern.test(email)){
    		resultat['success']=false;
    		resultat['error'][]=' adresse Email est invalide';
    		
    	}
    	
    	//nom
    	var nom = document.formulaire.nom.value;
    
    	pattern= /^[A-Za-z]+$/;
    	if(!pattern.test(nom)){
    		resultat['success']=false;
    		resultat['error'][]=" nom est invalide!";
    		return false;
    	}
    
    	//tu fais pareil pour les autres champs
    	var prenom = document.formulaire.prenom.value;
    	var pseudo = document.formulaire.pseudo.value;
    	
    	//on verifie que l'on n'a pas trouvé d'erreur
    	if(resultat['success'] == false){
    		//affichage message d'erreur
    			var message_erreur="";
    		for(i=0; i < resultat['error'].length; i++){
    			message_erreur += '\r\n'+resultat['error'][i]; //on les mets tous avec un saut de ligne
    			
    		}
    		alert(message_erreur);
    	}else{
    		
    		return true;
    	}
    }
    
    </script>
    </head>
    <title>
    tp javascript
    </title>
    <body>
    Ce formulaire va vous inscrire a la mailing-list de l'éditeur JavaScript.<br />
    <form action="" method="post" name="formulaire" onsubmit="return validation();">
    @mail :<input type="text" name="email" alt="mail" size="15"><br>
    Nom : <input type="text" name="Nom" alt="string" size="15"><br>
    PreNom :<input type="text" name="PreNom" alt="string" size="15"><br>
    Pseudo :<input type="text" name="Pseudo" alt="pseudo" size="15"><br>
    <input type="submit" name="envois" value="Envoyer">  
    <input type="reset" value="Effacer" ><noscript><a href="http://www.editeurjavascript.com/countus/">compteur live</a></noscript>
    </body>
    </html>
    
    0