Validation formulaire

yusufrugby -  
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   -
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

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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