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 :

Fonction de validation de formulaire soumet toujours le formulaire


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Fonction de validation de formulaire soumet toujours le formulaire
    Bonjour,

    J'ai un problème avec ce formulaire, le onsubmit renvoit toujours true alors que pseudo est vide:

    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
    <SCRIPT language="Javascript">
      function verifFormulaire(frm){
        var verif = true;
        if(verifEmpty(frm.pseudo)==1)
        {
          setRedChamps(frm.pseudo, "Veuillez renseigner le pseudo");
          return false;
        }
     
        if(verifEmpty(frm.mdp)==1)
        {
          setRedChamps(frm.mdp, "Veuillez renseigner le mot de passe");
          return false;
        }
     
        return verif;
     
      }
    </SCRIPT>
     
    <div class="titre1" id="titleInscription">Connexion</div>
    <br class="separe"/>
    <form method="POST" action="index.php?page=verifConnection" onsubmit="return verifFormulaire(this)">  
      <br class="separe"/>
      <div class="labelForm"><label for="pseudo">Pseudo : </label></div> 
      <div class="inputForm">
        <input type="text" id="pseudo" name="pseudo" value=""/>
        <label id="msgerrorpseudo" class="champsInvalideRed" />
      </div>
      <br class="separe"/>
      <div class="labelForm"><label for="mdp">Mot de passe : </label></div> 
      <div class="inputForm">
        <input type="password" id="mdp" name="mdp" value="monpassword"/>
        <label id="msgerrormdp" class="champsInvalideRed" />
      </div>
      <br class="separe"/>
      <br class="separe"/>
      <br class="separe"/>
      <div id="inscriptionButton">
        <input type="submit" value="Envoyer" class="redButton"/>
        ****
        <input type="reset" value="Annuler" class="redButton"/>
      </div>
    </form>
    et ce formulaire fonctionne quand j’enlève l'appel à setRedChamps qui est ici:
    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
    function trim (myString) 
    { 
      return myString.replace(/^\s+/g,'').replace(/\s+$/g,'') 
    } 
     
    function verifEmpty(objet)
    {
      if(trim(objet.value)=="")
      {
        return 1;
      }
      else
      {
        return 0;
      }
    }
     
    function setRedChamps(objet, message)
    {
        objet.className='emptyChamp';
        if(message!=""){
          document.getElementById("errormsg"+objet.id).value = message;
        }
    }
    Si quelqu'un a une idée, moi je suis bien perdu. ça me semblait simple à la base :'(.


    Charles

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Bonjour,

    Tu peux utiliser true et false au lieu de 0 et 1 comme retour. Ca évitera des surprises avec l'interprétation de 0 en Javascript.

    Sinon je ne vois pas d'autres problèmes. Il faudrait déboguer ça avec des breakpoints, et vérifier qu'il n'y a pas d'erreurs Javascript. Car s'il y a une erreur Javascript, le onSubmit ne bloquera plus la soumission du formulaire, et ça peut te laisser penser par erreur que tu as retourné true.

  3. #3
    Candidat au Club
    Inscrit en
    Décembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup pour ta réponse.
    Il doit en effet y avoir une erreur dans ma fonction Javascript, ce qui expliquerait que le onSubmit ne bloque rien. Je ne connaissais pas ce point là.

    Ton aide m'a été bien précieuse . Je corrigerais tout ça et je repasserais.


    edit: concernant le 0 et 1 j'ai voulu voir si le onsubmit ne devenait pas fou si je renvoyais un true ou false dans une sous fonction et j'ai oublié d'enlever le test.

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 082
    Points : 44 687
    Points
    44 687
    Par défaut
    Bonsoir,
    et ce formulaire fonctionne quand j’enlève l'appel à setRedChamps qui est ici:
    l'erreur est semble t-il dans cette fonction...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("errormsg"+objet.id).value = message;
    il est déclaré où dans ton code HTML cet élément

  5. #5
    Candidat au Club
    Inscrit en
    Décembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Je me doutais bien qu'il y avait un problème quelque part et notamment autour de cette fonction. C'est juste que je ne savais pas que le formulaire validait quand il y avait une erreur js alors je ne comprenais pas.

    Je ne sais pas quoi en penser d'ailleurs.... ça me semble plutôt louche que ça réagisse comme ça.

    Cela dit je reste un crétin car j'ai inversé msgerror et errormsg donc j'avais un undefined error quand je voulais attribuer le message.

    Merci beaucoup SylvainPV .

  6. #6
    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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    ça me semble plutôt louche que ça réagisse comme ça
    Ben au contraire, c'est normal... Si JavaScript ne peut pas empêcher le formulaire d'être soumis, alors le formulaire sera soumis.

  7. #7
    Candidat au Club
    Inscrit en
    Décembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    C'est parce que je voyais ça dans l'autre sens dans le cas où je rajoutais un contrôle dans le onsubmit. Le JavaScript qui autoriserait le formulaire à soumettre. Mais à partir du moment ou on connait le fonctionnement, il n'y a plus de problème pour corriger son code. J'espère que je m'en souviendrai.

    Pour info, pour débugger tout ça j'ai rajouté un href qui lançait ma fonction JavaScript de vérification avec en paramètre document.forms[0].

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

Discussions similaires

  1. onsubmit qui valide toujours un formulaire
    Par DJ Caësar 9114 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/03/2009, 21h00
  2. Fonction de validation de formulaire
    Par tavarlindar dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/03/2009, 15h08
  3. Réponses: 0
    Dernier message: 12/05/2008, 19h40
  4. Réponses: 23
    Dernier message: 25/04/2007, 16h36
  5. appel de fonction sur validation de formulaire
    Par PAYASS59 dans le forum Langage
    Réponses: 15
    Dernier message: 17/01/2006, 10h09

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