Verifier les champs de formulaire

Résolu/Fermé
meynoucha - 9 juin 2008 à 15:20
 David - 9 juin 2008 à 16:17
Bonjour,
je suis en train de verifier le champ mail et nom d'un formulaire,voiçi le code:

<SCRIPT language="JavaScript">

function verif_formulaire()
{
if(document.Form1.nom.value == '' )
{
alert('Veuillez saisir votre nom!');
document.Form1.nom.value=" ";
document.Form1.nom.focus();
return false;
}
if(verifMail(),false)
{

alert('Veuillez saisir votre mail!');
document.Form1.mail.focus();
return false;
}
else

{
WindowObjectReference = window.open("confirmation.php");
return true;
}
}
function verifMail()
// On ouvre la fonction en lui envoyant la contenu du champ
{
testm = false ;
/*
la on spécifie que l'adresse est false (fausse) dès le début. Cela permet de pouvoir dire que si rien n'est entré dans le champ l'adresse est fausse.
*/
a=document.Form1.mail.value;

for (var j=1 ; j <= (a.length) ; j++) {

/*
Ici, ouverture d'une boucle for à 1 qui permettra de tester du premier jusqu'au dernier caractère de l'adresse e-mail entrée.
*/

if (a.charAt(j)=='@') {
// La on commence les conditions de tests. Ici on cherche l'@
if (j<(a.length-4)){
// Ici on regarde si il y a bien 4 caractère après le @
for (var k=j ; k<(a.length-2) ; k++) {
// On ouvre une seconde boucle pour
if (a.charAt(k)=='.') testm = true;

/*
on vérifie qu'il y ai bien un point et on met la variable testm à true (implicitement si toutes les conditions sont remplies) puis on ferme les conditions et boucles
*/
}
}
}
}

if (testm =false)

return false;
else
return true;
}
</script>

et pour le formulaire je l'ai déclaré:
<form name="Form1" method="post" action="confirmation.php" onSubmit="return verif_formulaire()">



Si vous pouvez m'aider,n'hésitez pas merci.

4 réponses

Salut meynoucha

Quel est exactement ton problème en fait ?

David
0
salut David merci pour ta reponse ,mon probléme c'est meme je tape une adresse mail erroné,il l'accepte et il pesse a la page suivante alors que pour le nom il vérifie bien son existance.
0
function verifMail()
{
testm = false;
a=document.Form1.mail.value;
for (var j=0 ; j <(a.length) ; j++)
{
if (a.charAt(j)=='@')
{
if (j<(a.length-4))
{
for (var k=j ; k<(a.length-2) ; k++)
{
if (a.charAt(k)=='.')
{
testm = true;
}
}
}
}
}
return testm
}

tiens essaie ca mais je suis pas sur, je n'ai rien pour tester
0
désolé David mais ça marche pas,pourtant j'ai vérifié qui'il entre dans la fonction verifmail() et il m'affiche testm=false quant je tape une adresse erronée,mais il passe toujours a la page suivante sans qu'il m'affiche 'veuillez saisir votre adresse mail'
0
David > meynoucha
9 juin 2008 à 15:58
JE t'ai mis 2 remarques plus bas
0
if(verifMail(),false)

mets plustot

if(verifMail())
0
Mest aussi un else après ton premier if de verif_formulaire qui englobe tout le reste, histoire que si le nom n'est pas saisie, il se frappe pas la verif du mail
0
en faite sa se fait sans que je mets le else parce qu'il verifie dans l'ordre des conditions,et j'ai changé le verifmail() mais ça marche pas
0
David > meynoucha
9 juin 2008 à 16:04
Si je comprend bien, il te mets testm = false mais il passe quand meme à la validation ?
0
meynoucha > David
9 juin 2008 à 16:07
oui c'est ça,j'ai fait:
alert(testm);
return testm;
et il m'affiche bien false quant c'est faut mais aprés il passe à lapge confirmation.php
0
meynoucha > meynoucha
9 juin 2008 à 16:12
merci david j'ai trouvé la solution,il faut juste mettre:if(verifMail()==false)
0
David > meynoucha
9 juin 2008 à 16:16
<SCRIPT language="JavaScript">

function verif_formulaire()
{
test=false;
if(document.Form1.nom.value == '' )
{
alert('Veuillez saisir votre nom!');
document.Form1.nom.value=" ";
document.Form1.nom.focus();
}
else
{
if(!verifMail())
{
alert('Veuillez saisir votre mail!');
document.Form1.mail.focus();
return false;
}
else
{
test=true;
}
}
if(test==true)
{
alert("form ok");
}
else
{
alert("form pas ok");
}
}

function verifMail()
{
testm = false ;
testat=false;
a=document.Form1.mail.value;
for (var j=0 ; j < (a.length) ; j++)
{
if (a.charAt(j)=='@')
{
testat=true;
}
if (testat && a.charAt(j)=='.')
{
testm=true;
}
}
return testm;
}
</script>
0