Verifier les champs de formulaire

Résolu
meynoucha -  
 David -
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.
Configuration: Windows XP
Firefox 2.0.0.14

4 réponses

  1. David
     
    Salut meynoucha

    Quel est exactement ton problème en fait ?

    David
    0
    1. meynoucha
       
      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
  2. David
     
    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
    1. meynoucha
       
      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
      1. David > meynoucha
         
        JE t'ai mis 2 remarques plus bas
        0
  3. David
     
    if(verifMail(),false)

    mets plustot

    if(verifMail())
    0
  4. David
     
    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
    1. meynoucha
       
      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
    2. David > meynoucha
       
      Si je comprend bien, il te mets testm = false mais il passe quand meme à la validation ?
      0
    3. meynoucha > David
       
      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
    4. meynoucha > meynoucha
       
      merci david j'ai trouvé la solution,il faut juste mettre:if(verifMail()==false)
      0
    5. David > meynoucha
       
      <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