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 :

tester champ formulaire mail


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 21
    Par défaut tester champ formulaire mail
    Bonjour,

    j'effectue une série de test de mes champs de formulaire afin d'avoir une base mysql nickel, et j'ai un soucis pour tester si l'écriture du mail est correcte.en fait je n oblige pas à rentrer un mail mais lorsque l'on en rentre un je teste si le @ et le . sont présent.
    mon soucis actuel s'est que lorsque je rentre un mail j'ai une alerte si le mail est mal orthographié et ensuite plus rien ne fonctionne je ne peux meme plus valider mon formulaire.
    voici mon prog:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if(f.adresse1.value == ""){
    alert("Veuillez entrer votre adresse!");
    f.adresse1.focus();
    return false; }
    if(f.email.value != "") {				if((f.email.value.indexOf("@")>=0)&&(f.email.value.lastIndexOf(".")>f.email.value.indexOf("@"))) {
    return false;
    } else {
    alert("Mail invalide");f.email.focus();return false;}
    							}
    if(f.elements["list2"].options.length ==0){
    alert("Veuillez sélectionner une ville!");
    f.elements["list2"].focus();
    return false; }
    Merci pour votre aide.

  2. #2
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    D'après ton code,
    lorsque ton mail est saisi,
    mais qu'il n'est pas valide,
    tu n'affiches pas d'alerte,
    ni ne replaces le focus sur le champ email,
    tu te contentes d'un return false.

    Cela ne marcherait-il pas mieux ainsi ?
    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
    if(f.adresse1.value == ""){
    	alert("Veuillez entrer votre adresse!");
    	f.adresse1.focus();
    	return false;
    }
    if(f.email.value != "") {
    	if((f.email.value.indexOf("@")>=0)&&(f.email.value.lastIndexOf(".")>f.email.value.indexOf("@"))) {
    		alert("Mail invalide");
    		f.email.focus();
    		return false;
    	} else {
    		alert("Veuillez entrer votre mail");
    		f.email.focus();
    		return false;
    	}
    }
    if(f.elements["list2"].options.length ==0) {
    	alert("Veuillez sélectionner une ville!");
    	f.elements["list2"].focus();
    	return false;
    }
    Fred

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    un peu léger comme validation de mail ...

    une bonne vieille expression régulière serait nettement plus performante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 21
    Par défaut
    salut,

    comment appliquer l'expression réguliére.

    Merci.

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <script>
    function validmail(){
    var reg=/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    var email=document.getElementById('champsmail').value;
    alert((reg.test(email))?'email ok':'email incorrect')
    // ou : alert((email.match(reg))?'email ok':'email incorrect')
    }
    </script>
    </head>
     
    <body>
    <input id="champsmail" type="text" />
    <input type="button" onclick="validmail()" value="verfier" />
    </body>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 21
    Par défaut
    je te remercie pour la fonction, mais mon formulaire et déja accroché à une fonction qui justement me permet de vérifier tous les champs de celui ci.
    il me reste juste à régler la gestion du mail. je n'impose pas le remplissage du champ mail mais je veux vérifié sa saisie lorsqu'on le remplit.
    est ce que tu crois que je peux l'implanter dans ma fonction ??

    Merci.

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    non je ne le crois pas ...
    j'en suis certain !


    dans cette partie là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(f.email.value != "") {
    	if((f.email.value.indexOf("@")>=0)&&(f.email.value.lastIndexOf(".")>f.email.value.indexOf("@"))) {
    		alert("Mail invalide");
    		f.email.focus();
    		return false;
    remplace ton test indexOf par le test regExp
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 21
    Par défaut
    Bonjour,

    je n'ai toujours pas résolu mon test de mail.
    voici mon script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(f.email.value != "") {
    var reg=/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    var email=document.getElementById('f.email').value;
         				alert("Veuillez entrer une adresse e-mail valide, merci");
         				f.email.focus();
         				return false;
         					}
    quand je rentre 2 lettres dans mon champ il ne teste la syntaxe de mon mail est valide directement mon formulaire.

    Merci pour votre aide.

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut

    Il ne suffit pas de déclarer une variable pour que la vérification se fasse comme par magie...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(f.email.value != "") {
        var reg=/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
        var email=document.getElementById('f.email').value;
        if(email.match(reg){
            alert("Veuillez entrer une adresse e-mail valide, merci");
            f.email.focus();
            return false;
        }
    }
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 21
    Par défaut
    salut,

    je suis désolé mais il ne prend toujurs pas en compte ma vérif de mail, pour etre sur que cela vient uniquement de cette boucle. j'ai créé une page basique html avec deux champ texte pour mail et nom.
    voici la partie javascript:
    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
     
    function test(f) {
    			if(f.nom.value == "") {
    			alert("Veuillez entrer votre nom!");
    			f.nom.focus();
    				return false; }
    			if(f.email.value != "") {
    				var reg=/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    					var email=document.getElementById('email').value;
    					if(email.match(reg)){
         				alert("Veuillez entrer une adresse e-mail valide, merci");
         				f.email.focus();
         				return false;}
    				}
    		}
     
    </SCRIPT>
    et voici la partie body:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <form id="monForm" name="AVIS" method="post" action="" OnSubmit="return test(this)">
      <p>
      <input name="nom" type="text" id="form_nom" size="25" value="" />
      </p>
      <p>
        <input name="email" type="text" id="form_email" size="30" />
      </p>
      <p>&nbsp;</p>
      <p>
        <input type="submit" name="Submit" value="Valider">
      </p>
    </form>
    merci de m'aider.
    A+

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var email=document.getElementById('email').value;
    Ton champ n'a pas d'id email
    Regarde un minimum le code...

    EDIT :
    En plus :
    Tu affiches le message d'erreur si le champ est valide
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 21
    Par défaut
    Merci pour votre aide j'ai résolu mon soucis.
    voici mon code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    if(f.adresse1.value == ""){
    alert("Veuillez entrer votre adresse!");
    f.adresse1.focus();
    return false; }
    if(f.email.value != "") {
    var reg=/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    var email=document.getElementById('form_email').value;
    if(!email.match(reg)){
    alert("Adresse e-mail invalide");
    f.email.focus();
    return false;}
    }

  13. #13
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 156
    Par défaut
    Bonjour,

    Je me permet de remonter ce sujet, car mon problème est du même genre... j'ai suivi en parti les conseils donnés dans ce sujet, mais ça ne règle pas mon problème. Je teste des numéros de téléphone, et des adresses mail, et, selon ma fonction, ils ne sont jamais bon !

    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
     
    var tabTestValidite=new Array;
    tabTestValidite[0]=new Array(
    	"numTel_1,numTel_2",  // liste des "id" des champs à tester
    	"/^([+][0-9]{2,6})?[0-9]{10,15}$/");
    tabTestValidite[1]=new Array(
    	"adMail1,adMail2",
    	"/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/");
     
    var chps;
    for(var i=0; i<tabTestValidite.length; i++)
    {
    	var champs_test=tabTestValidite[i][0].split(',');
    	for(var j=0; j<champs_test.length; j++)
    	{
    		var chps=document.getElementById(champs_test[j]);
    		var regex=tabTestValidite[i][1];
    		if(!regex.match(chps.value));
    		{
    			ok=false;
    		}
    	}			
    }
    alert(ok);
    Pour l'expression régulière du mail, j'ai repris celle de SpaceFrog, mais pour celle du téléphone, je l'ai écrite moi-même...

    Merci d'avance !

  14. #14
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    enlève les quotes autous de la reg !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    tabTestValidite[1]=new Array(
    	"adMail1,adMail2",
    	/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/,
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  15. #15
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 156
    Par défaut
    La console m'affiche "regex.match is not a function"...

  16. #16
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    si tu avais lu les posts précédents ...
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(!chps.value.match(regexp));
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  17. #17
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 156
    Par défaut
    Ca m'a échappé.
    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JS pour formulaire pdf] - Validation champ E-mail
    Par Alexina dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/06/2014, 10h01
  2. onsubmit pour tester si champs formulaire vides
    Par Xeuch dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 26/02/2013, 15h30
  3. Formulaire mail, contrôle de champs en Javascript
    Par id1311 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/04/2012, 17h09
  4. [Mail] Tester un formulaire d'envoi de mail en local!
    Par Madzeus dans le forum Langage
    Réponses: 4
    Dernier message: 12/05/2008, 14h17
  5. Comment tester une adresse mail ?
    Par jackop dans le forum Langage
    Réponses: 5
    Dernier message: 08/09/2005, 16h19

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