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 :

controle des erreurs d'un formulaire


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 14
    Points : 11
    Points
    11
    Par défaut controle des erreurs d'un formulaire
    Bonjour
    je souhaite que des messages d'erreur soient affichés
    dans un <div> si les champs nom, email et telephone
    sont mal completés (vide ou chiffre au lieu de lettre)
    tout en restant sur cette page, bloquer la validation du <form>
    Et j'ai comme ça 12 champs à controller
    Peut etre existe t il un moyen plus simple :

    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
     
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <script>
    function controle() {
    if(document.getElementById('name').style.display == 'none' || document.getElementById('name').style.display == '') {
    document.getElementById('err_name').style.display = 'block'; 
    }else{
    document.getElementById('err_name').style.display = 'none'; 
    }
     
    if(document.getElementById('email').style.display == 'none' || document.getElementById('email').style.display == '') {
    document.getElementById('err_email').style.display = 'block'; 
    }else{
    document.getElementById('err_email').style.display = 'none'; 
    }
     
    if(document.getElementById('phone').style.display == 'none' || document.getElementById('phone').style.display == '') {
    document.getElementById('err_phone').style.display = 'block'; 
    }else{
    document.getElementById('err_phone').style.display = 'none'; 
    }
     
    }
    </script>
    </head>
    <body>
    <form method="post" action="achat.php" name="form" id="form" onSubmit="return controle()">
     
    <div class="label1" id="lname">Nom:</div>
    <div class="label2">
    <input type="text" id="name" name="name" size="35" maxlength="50" value="" />
     
    <div id="err_name" style="display: none;">
    <span class="warning" id="err_msg_name"></span>
    </div>
    </div>
     
    <br />
     
    <br />
     
    <div class="label1">
    <label for="email">Email:</label>
    </div>
    <div class="label2">
    <input type="text" id="email" name="email" size="35" maxlength="60" value="" onblur="checkEmail();" />
    <br />
    <div id="err_email" style="display: none;">
    <span class="warning" id="err_msg_email">erreur</span>
    </div>
     
    </div>
    <br />
     
    <div class="label1">
    <label>Téléphone:</label>
    </div>
    <div class="label2">
    <input type="text" id="phone" name="phone" size="17" maxlength="50" value="" />
    <div id="err_phone" style="display: none;">
    <span class="warning" id="err_msg_phone">erreur</span>
    </div>
    </div>
     
    <div><input type="submit" onclick="javascript:controle();" value="Valider"></div>
     
    </form>
    </body>
    </html>


    merci

  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,
    première remarque : ta fonction ne contrôle pas du tout le contenu des champs (le .value)
    Tu peux utiliser une des solutions présentées dans les Contributions :
    http://www.developpez.net/forums/d55...on-formulaire/
    ou
    http://www.developpez.net/forums/d53...ynamique-form/

    Seconde remarque : l'appel de la fonction ne doit pas se faire sur le onclick du bouton submit, mais sur le onsubmit du <form> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form .... onsubmit="return controle();">
    La fonction controle() retournant true si les tests sont OK est false sinon ...

    Enfin, dernière remarque : le contrôle de validité des valeurs saisies doit toujours être refait au niveau du serveur (au cas où JavaScript ait été désactivé)

    A+
    Pour tout savoir sur l'utilisation du forum

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

Discussions similaires

  1. Formulaire en plusieurs parties ? (avec controle des erreurs)
    Par fabseven dans le forum Ruby on Rails
    Réponses: 0
    Dernier message: 04/04/2008, 16h23
  2. Validation , controle des erreurs dans la jsp.
    Par kalurar dans le forum Struts 2
    Réponses: 2
    Dernier message: 13/08/2007, 15h33
  3. Réponses: 18
    Dernier message: 29/01/2007, 16h13
  4. Réponses: 2
    Dernier message: 06/07/2006, 08h22
  5. controle des caracteres d'un formulaire
    Par pimpmyride dans le forum Langage
    Réponses: 4
    Dernier message: 11/01/2006, 11h35

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