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 :

Contrôle du champ email


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Guinée

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 112
    Par défaut Contrôle du champ email
    Salut tout le monde,
    j'ai un formulaire d'inscription avec 4 champs Pseudo, Email, pwd1, pwd2 et tous les champs fonctionnent bien sauf le contrôle du champ Email.
    Je veux que les utilisateurs respectent ce format xxx@xxx.xxx en saisissant leur adresse mail et si un paramètre n'est pas respecté soit par l'absence de @ ou l'omission du nom de domaine (.fr, .com, ...) que le Tooltips correspondant s'active jusqu'à ce que le format soit respecté et c'est ce qui ne se fait pas et si quelqu'un pouvait corriger mon formulaire. Merci d'avance

    Voici mon code css
    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
     
        <style>
          body {
           padding-top: 50px;
          }
     
          .form_col {
            display: inline-block;
            margin-right: 15px;
            padding: 3px 0px;
            width: 200px;
            min-height: 1px;
            text-align: right;
          }
     
          input {
            padding: 2px;
            border: 1px solid #CCC;
            -moz-border-radius: 2px;
            -webkit-border-radius: 2px;
            border-radius: 2px;
          }
     
          input:focus {
            border-color: rgba(82, 168, 236, 0.75);
            -moz-box-shadow: 0 0 8px rgba(82, 168, 236, 0.5);
            -webkit-box-shadow: 0 0 8px rgba(82, 168, 236, 0.5);
            box-shadow: 0 0 8px rgba(82, 168, 236, 0.5);
          }
     
          .correct {
            border-color: rgba(68, 191, 68, 0.75);
          }
     
          .correct:focus {
            border-color: rgba(68, 191, 68, 0.75);
            -moz-box-shadow: 0 0 8px rgba(68, 191, 68, 0.5);
            -webkit-box-shadow: 0 0 8px rgba(68, 191, 68, 0.5);
            box-shadow: 0 0 8px rgba(68, 191, 68, 0.5);
          }
     
          .incorrect {
            border-color: rgba(191, 68, 68, 0.75);
          }
     
          .incorrect:focus {
            border-color: rgba(191, 68, 68, 0.75);
            -moz-box-shadow: 0 0 8px rgba(191, 68, 68, 0.5);
            -webkit-box-shadow: 0 0 8px rgba(191, 68, 68, 0.5);
            box-shadow: 0 0 8px rgba(191, 68, 68, 0.5);
          }
     
          .tooltip {
            display: inline-block;
            margin-left: 20px;
            padding: 2px 4px;
            border: 1px solid #555;
            background-color: #CCC;
            -moz-border-radius: 4px;
            -webkit-border-radius: 4px;
            border-radius: 4px;
          }
        </style>
    Et voici le code du formulaire
    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
        <form id="myForm" action="verifformulaire.php" method="post">
     
          <label class="form_col" for="Pseudo">Pseudo :</label>
          <input name="Pseudo" id="Pseudo" type="text" />
          <span class="tooltip">Le pseudo ne peut pas faire moins de 4 caractères</span>
          <br /><br />
     
          <label class="form_col" for="Email">e-mail :</label>
          <input name="Email" id="Email" type="text" />
     
          <span class="tooltip">Votre é-mail doit être de la forme xxx@xxx.xxx</span>
          <br /><br />
     
          <label class="form_col" for="pwd1">Mot de passe :</label>
          <input name="pwd1" id="pwd1" type="password" />
     
          <span class="tooltip">Le mot de passe ne doit pas faire moins de 6 caractères</span>
     
          <br /><br />
     
          <label class="form_col" for="pwd2">Mot de passe (confirmation) :</label>
          <input name="pwd2" id="pwd2" type="password" />
          <span class="tooltip">Le mot de passe de confirmation doit être identique à celui d'origine</span>
          <br /><br />
     
          <span class="form_col"></span>
          <label><input name="news" type="checkbox" /> Je désire recevoir la newsletter chaque mois.</label>
          <br /><br />
     
          <span class="form_col"></span>
          <input type="submit" value="M'inscrire" /> <input type="reset" value="Réinitialiser le formulaire" />
     
        </form>
    Et voici le code JavaScript correspondant:
    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
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
     <script type="text/javascript">
     
          // Fonction de désactivation de l'affichage des "tooltips"
     
          function deactivateTooltips() {
     
            var spans = document.getElementsByTagName('span'),
                spansLength = spans.length;
     
            for (var i = 0 ; i < spansLength ; i++) {
              if (spans[i].className == 'tooltip') {
                spans[i].style.display = 'none';
              }
            }
     
          }
     
     
          // La fonction ci-dessous permet de récupérer la "tooltip" qui correspond à notre input
     
          function getTooltip(el) {
     
            while (el = el.nextSibling) {
              if (el.className == 'tooltip') {
                return el;
              }
            }
     
            return false;
     
          }
     
     
          // Fonctions de vérification du formulaire, elles renvoient "true" si tout est ok
     
          var check = {}; // On met toutes nos fonctions dans un objet littéral
     
          check['Pseudo'] = function(id) {
     
            var name = document.getElementById(id),
                tooltipStyle = getTooltip(name).style;
     
            if (name.value.length >= 3) {
              name.className = 'correct';
              tooltipStyle.display = 'none';
              return true;
            } else {
              name.className = 'incorrect';
              tooltipStyle.display = 'inline-block';
              return false;
            }
     
          };
     
          check['Email'] = function() { // La fonction pour le prénom est la même que celle du nom
    		 var regex=document.getElementById('Email'),
    		   		  tooltipStyle = getTooltip(regex).style;
    				 //regex = /^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/;
    		  if(regex.value.length =/^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/)
       {
         regex.className = 'correct';
              tooltipStyle.display = 'none';
              return true;
       }
       else
       {
          regex.className = 'incorrect';
              tooltipStyle.display = 'inline-block';
              return false;
       }
    };
     
          check['pwd1'] = function() {
     
            var pwd1 = document.getElementById('pwd1'),
                tooltipStyle = getTooltip(pwd1).style;
     
            if (pwd1.value.length >= 6) {
              pwd1.className = 'correct';
              tooltipStyle.display = 'none';
              return true;
            } else {
              pwd1.className = 'incorrect';
              tooltipStyle.display = 'inline-block';
              return false;
            }
     
          };
     
          check['pwd2'] = function() {
     
            var pwd1 = document.getElementById('pwd1'),
                pwd2 = document.getElementById('pwd2'),
                tooltipStyle = getTooltip(pwd2).style;
     
            if (pwd1.value == pwd2.value && pwd2.value != '') {
              pwd2.className = 'correct';
              tooltipStyle.display = 'none';
              return true;
            } else {
              pwd2.className = 'incorrect';
              tooltipStyle.display = 'inline-block';
              return false;
            }
     
          };
     
     
          // Mise en place des événements
     
          (function() { // Utilisation d'une fonction anonyme pour éviter les variables globales.
     
            var myForm = document.getElementById('myForm'),
                  inputs = document.getElementsByTagName('input'),
                  inputsLength = inputs.length;
     
            for (var i = 0 ; i < inputsLength ; i++) {
              if (inputs[i].type == 'text' || inputs[i].type == 'password') {
     
                inputs[i].onkeyup = function() {
                  check[this.id](this.id); // "this" représente l'input actuellement modifié
                };
     
              }
            }
     
            myForm.onsubmit = function() {
     
              var result = true;
     
              for (var i in check) {
                result = check[i](i) && result;
              }
     
              if (result) {
                alert('Le formulaire est bien rempli.');
              }
     
              return false;
     
            };
     
            myForm.onreset = function() {
     
              for (var i = 0 ; i < inputsLength ; i++) {
                if(inputs[i].type == 'text' || inputs[i].type == 'password') {
                inputs[i].className = '';
                }
              }
     
              deactivateTooltips();
     
            };
     
          })();
     
     
          // Maintenant que tout est initialisé, on peut désactiver les "tooltips"
     
          deactivateTooltips();
     
        </script>

  2. #2
    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 659
    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 659
    Billets dans le blog
    1
    Par défaut
    un verification avec regex => .test() ou .match()
    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 !

  3. #3
    Membre confirmé
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Guinée

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 112
    Par défaut
    Euh! Il faudrait être plus précis pour moi j'avoue suis pas un expert dans la matière!

  4. #4
    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 659
    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 659
    Billets dans le blog
    1
    Par défaut
    Oula faut chercher un peu mon ptit bonhomme !!

    il y' a pourtant plein d'exemples sur developpez avec des test et match de regexp


    Bon je suis dans un grand jour ... voici un exemple

    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
    var checkem=new Array();
    checkem['Email'] = function() { // La fonction pour le prénom est la même que celle du nom
    		 var adrmail="truc@machin.com"
    		if(adrmail.match(/^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/))  {
    			alert('ok match')
       			}
       		else {alert('ko match')}
     
    if(/^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/.test(adrmail))  {
    			alert('ok test')
       			}
       		else {alert('ko test')}
     
     
    }
    checkem['Email']()
    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 !

  5. #5
    Membre confirmé
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Guinée

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 112
    Par défaut
    j'essayer bien d'adapter tes codes à mon formulaire mais ça ne donne pas le résultat que je veux!

  6. #6
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Par défaut
    http://jacques-guizol.developpez.com...Exp/RegExp.php

    lis ceci, ça te permettra de te familiariser avec l'utilisation des expressions régulières

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Oula faut chercher un peu mon ptit bonhomme !!

    il y' a pourtant plein d'exemples sur developpez avec des test et match de regexp


    Bon je suis dans un grand jour ... voici un exemple

    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
    var checkem=new Array();
    checkem['Email'] = function() { // La fonction pour le prénom est la même que celle du nom
    		 var adrmail="truc@machin.com"
    		if(adrmail.match(/^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/))  {
    			alert('ok match')
       			}
       		else {alert('ko match')}
     
    if(/^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/.test(adrmail))  {
    			alert('ok test')
       			}
       		else {alert('ko test')}
     
     
    }
    checkem['Email']()
    Ta regexp ne permet pas de valider une adresse de ce genre :
    chou_bidou@monsite.com

    Tu as oublié de traiter le _
    et n'oublie jamais qu'une adresse email a le droit de s'écrire ainsi :
    nom@123.234.56.78 (oui une adresse ip à la place d'un domaine)
    Tiens voila une regexp qui gère quasiment tous les cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [\w-]+@([\w-]+\.)+[\w-]+

  8. #8
    Membre confirmé
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Guinée

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 112
    Par défaut
    J'apprécie bien votre aide et surtout ne soyer pas presser de me répondre! Sil vous plait prenez le temps de tester mes codes et vous comprendrez bien là ou se situe le problème ainsi vous saurez me répondre! Merci d'avance
    copiez-coller mes codes dans un éditeur (bloc note ou autre) et voyer le résultat

Discussions similaires

  1. [Tableaux] contrôle de champs get sans effet
    Par ceostar dans le forum Langage
    Réponses: 11
    Dernier message: 02/03/2007, 11h27
  2. enregistrement champs email sous BO
    Par miss_bo dans le forum Deski
    Réponses: 1
    Dernier message: 15/02/2007, 22h35
  3. test champs email avec une image pour bouton de validation
    Par becouet dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/06/2006, 23h17
  4. contrôle de champ vide
    Par allowen dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/03/2005, 14h16
  5. Problème de contrôle de champ input texte
    Par NATHW dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/10/2004, 22h48

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