IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Valider champ + adresse email


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 36
    Points : 29
    Points
    29
    Par défaut Valider champ + adresse email
    Je veux tester si deux champs d'un formulaire sont renseignés avec la fonction validation (). Si les champs sont effectivement remplis je veux vérifier si le champ email est valide. J'ai tenté de réunir deux scripts puisés sur le web.
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     <script language="javascript" type="text/javascript"> 
      <!--
      function Email1(s)
    {
    var i=0;
    var cpt=0;
    var sLength = s.length;
    while (i < sLength)
    { 
    if (s.charAt(i)=="@") {cpt ;}
    i ;
    }
    if (cpt==1) return false;
    else return true;
    }
    function Email2(s)
    {
    var sLength = s.length;
    if ((s.charAt(sLength-4)==".") || (s.charAt(sLength-3)==".")) return false;
    else return true;
    }
     
    function validation() 
    { 
           	if(document.form1.nom.value == "") 
    		{ 
            alert ('Veuillez entrer votre nom !'); 
            document.form1.nom.focus(); 
            return false; 
        	}
     
    	if(document.form1.courriel.value == "") 
    		{ 
            alert ('Veuillez entrer votre adresse de courriel !'); 
            document.form1.courriel.focus(); 
            return false; 
        	} 
     
        	var v=document.form1.courriel.value;
    	if(Email1(v)||Email2(v)) 
    	{
    	 alert("Merci de vérifier votre adresse de courriel !");
             document.form1.courriel.focus(); 
             return false;
            }
       else 
        {
      return true;
    		}
    }
    -->
    </script>
    Le problème que j'ai est le suivant : lorsque j'envoie le formulaire avec le champ courriel mal renseigné mon navigateur se met à tourner à vide quelques secondes et alors un message m'informe que le script est lent et me présente le choix entre continuer ou arrêter. Si j'arrête, l'alerte ("Merci de vérifier votre adresse de courriel !") apparaît correctement et le focus est donné au champ courriel comme attendu alors que si je clique continuer rien ne se passe.
    Je n'arrive pas à trouver le pourquoi du premier message.
    J'attends vos lumières d'experts

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par benassis Voir le message
    lorsque j'envoie le formulaire avec le champ courriel mal renseigné mon navigateur se met à tourner à vide quelques secondes et alors un message m'informe que le script est lent et me présente le choix entre continuer ou arrêter.
    Tu as une boucle sans fin (détectée par le nav) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while (i < sLength)
    { 
    if (s.charAt(i)=="@") {cpt++ ;}
    i++;
    }
    EDIT : pareil pour ton "cpt" qui ne sera pas incrémenté ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 36
    Points : 29
    Points
    29
    Par défaut
    Bonjour E. Bzz,

    J'ai suivi ton conseil mais ça n'a pas fonctionné et comme je ne suis qu'un débutant en jvs, j'ai abandonné le script en question pour en utiliser un autre que j'ai trouvé ailleurs et que j'ai réussi à fignoler.
    Voici mon nouveau code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    <script language="javascript" type="text/javascript"> 
    <!--   
    function analyse(str) {
     
    		var at="@"
    		var dot="."
    		var lat=str.indexOf(at)
    		var lstr=str.length
    		var ldot=str.indexOf(dot)
    		if (str.indexOf(at)==-1){
    		   alert("Votre adresse de courriel est invalide !")
    		   return false
    		}
     
    		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
    		   alert("Votre adresse de courriel est invalide !")
    		   return false
    		}
     
    		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
    		    alert("Votre adresse de courriel est invalide !")
    		    return false
    		}
     
    		 if (str.indexOf(at,(lat+1))!=-1){
    		    alert("Votre adresse de courriel est invalide !")
    		    return false
    		 }
     
    		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
    		    alert("Votre adresse de courriel est invalide !")
    		    return false
    		 }
     
    		 if (str.indexOf(dot,(lat+2))==-1){
    		    alert("Votre adresse de courriel est invalide !")
    		    return false
    		 }
     
    		 if (str.indexOf(" ")!=-1){
    		    alert("Votre adresse de courriel est invalide !")
    		    return false
    		 }
     
     		 return true					
    	}
     
    function Valider(){
     
    	if(document.form1.nom.value == "") 
    		{ 
            alert ('Veuillez entrer votre nom !'); 
            document.form1.nom.focus(); 
            return false; 
        	}
    	var ad_courriel=document.form1.courriel
     
    	if ((ad_courriel.value==null)||(ad_courriel.value=="")){
    		alert("Entrez votre adresse de courriel, s'il vous plaît !")
    		ad_courriel.focus()
    		return false
    	}
    	if (analyse(ad_courriel.value)==false){
    		ad_courriel.value=""
    		ad_courriel.focus()
    		return false
    	}
    		return true
     }
    -->
      </script>
    Je l'appelle avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <form name="form1" method="post" action="paiement.php" onsubmit="return Valider();">
    <input name="Submit2" value="Envoyer" type="submit">
    Merci pour ta réponse

    Ps. Je ne sais toujours pas comment annoncer que le problème est résolu dans l'intitulé du message....

Discussions similaires

  1. Valider une adresse email
    Par mhuress dans le forum Développement
    Réponses: 4
    Dernier message: 22/03/2012, 12h34
  2. Champ calculé_Extraire Adresses Email
    Par MaryR dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 05/09/2009, 18h20
  3. validation d'adresse email
    Par sky88 dans le forum VB.NET
    Réponses: 10
    Dernier message: 06/07/2009, 16h27
  4. Adresse Email valide
    Par callo dans le forum Langage
    Réponses: 9
    Dernier message: 12/06/2009, 12h22
  5. adresse email valide
    Par isabelle22 dans le forum Débuter avec Java
    Réponses: 14
    Dernier message: 21/01/2009, 00h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo