Soucis java script

einteractif Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Hello,
Je ne comprend pas pourquoi le java script ne vérifie pas si l'adresse e-mail est correct .
Voici le script que je met entre les balises head : <script type="text/javascript" language="javascript">
<!--
function VerifMail()
{
 a = document.Verif.Mail.value;
 valide1 = false;
 for(var j=1;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)=='.') valide1=true;
    }
   }
  }
 }
 
 if(valide1==false) { 
  alert("Veuillez saisir une adresse email valide.");
 return valide1;
 }

//-->
</script>

et dans les balises du body :
<form id="Verif" name="Verif" method="post" onSubmit="return VerifMail();" >

 <input name="Mail" type="text" id="Mail" value="Tester une adresse email" size="35" >

 <input type="submit" value="Envoyer" name="submit" />
 </form>


EDIT : Ajout des balises de code
le formulaire n'interroge rien ...
Je suis preneur si vous avez trouvé !
A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour

Deja... pour vérifier une adresse mail
function validateEmail(email) {
    var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(String(email).toLowerCase());
}



Ensuite regarde les erreurs que tu as dans la console de ton navigateur

0
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
La regex de ton code est déjà bien longue, mais la vraie regex valide pour vérifier la syntaxe d'un mail selon la RFC 822 est... gigantesque.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

La vérité c'est qu'il vaut mieux ne pas utiliser ces expressions régulières, mais plutôt une forme réduite qui bloqueront peut-être certaines adresses mails valides, mais à la marge, voire même accepteraient des adresses mails invalides, ce que de toute façon on ne peut pas vérifier juste avec la syntaxe.
Il faut envoyer un mail et attendre une réponse pour vérifier que c'est bien une adresse mail valide, et en plus qu'elle appartient bien à l'utilisateur...

Quant au code JavaScript, j'ai des doutes rien que sur la première ligne
a = document.Verif.Mail.value;

Ne faudrait-il pas plutôt utiliser getElementById ?
0