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 :

Aucun retour d'appel à fonction


Sujet :

JavaScript

  1. #1
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2014
    Messages : 153
    Points : 316
    Points
    316
    Par défaut Aucun retour d'appel à fonction
    Bonjour,

    J'ai écrit une petite fonction Javascript pour valider mon formulaire (ici deux mot de passe). Il s'avere que celle ci de fonctionne pas, elle ne renvois, ni VRAI, ni FAUX.
    Voici la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function creationform() {
    if(document.getElementByName("password").value != document.getElementByName("confirmpassword").value){
    	alert("Les mots de passe ne correspondent pas");
    }
    else {
    	alert("Saisie OK");
    	return true;}
    }
    Voici le HTML

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form action=""  method="post" name="creation" id="creation" onSubmit="return creationform();">
    <table style="color:#FFFFFF;">
      <tr><td width="194" height="24" >Mot de passe</td>
      <td width="144"><input name="password" id="connect2" type="password" value=""></td>
      </tr>
      <tr><td width="194" height="30" >Confirmation mot de passe</td>
      <td width="144"><input name="confirmpassword" id="connect2" type="password" value=""></td>
      </tr>
      </table>

    Lorsque je retire le si, ne laissant que le "alert" et "return true"

    Le message "saisie OK" s'affiche correctement.

    De plus, le changement entre "!=" et "==", n'a aucun effet.

    Merci d'avance,
    Ma plateforme de formations digitales (développement Web, cybersécurité, SEO, Marketing digital)

    https://monformateurindependant.com

  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
    document.getElementByName n'existe pas. C'est document.getElementsByName
    One Web to rule them all

  3. #3
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    de plus getElementsByName retourne un ensemble d'élément
    mieux vaut mettre des id sur les éléments et utiliser getElementById
    là t'es sur d'avoir ton élement.
    Tu as bien mis des id mais deux foi le même ce qui est interdit en HTML (aucune garantie de résultat)

    il est toujour plus efficasse de retourner le résultat d'une comparaison plutôt que explictement le booléen
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    fonction test(a, b) {
      if (a == b) {
        return true;
      } else {
        return false;
      }
    }
    fonction test2(a, b) {
      return a == b;
    }
    test et test2 on exactement le même résultat mais dans la première le if ne sert à rien.

    enfin ta fonc n'a pas de retour faux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function creationform() {
      result = (document.getElementById("password").value != document.getElementById("confirmpassword").value);
      if (!result) {
        alert("Les mots de passe ne correspondent pas");
      } 
      return result;
    }
    A+JYT

  4. #4
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2014
    Messages : 153
    Points : 316
    Points
    316
    Par défaut
    Bonjour merci pour vos réponses,

    Je cherche toujours à comprendre ce que je fais : quel est la signification du return? est-ce une variable? que ce passe-t-il si a != b? est-ce que return vaut false?
    J'ai appliqué la méthode

    Edit : en fait j'ai toujours le même problème, l'opération document.getElementByID() ne semble pas prendre la valeur saisie. Je ne comprends pas...
    Ma plateforme de formations digitales (développement Web, cybersécurité, SEO, Marketing digital)

    https://monformateurindependant.com

  5. #5
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Attention au majuscule getElementById.

    return renvoi le résulta de l'expression qui suit. return (a == b) l'expression (a == b) est évaluée si a à la même valeur que b elle vaut true et si a est différent de b elle vaut false.
    c'est cette valeur qui est retournée par la fonction.

    A+JYT

  6. #6
    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
    Petite lecture utile au passage : Comment déboguer un script JavaScript ?
    One Web to rule them all

Discussions similaires

  1. Fonction mail() : aucun retour d'erreur
    Par Msieurduss dans le forum Langage
    Réponses: 2
    Dernier message: 21/03/2012, 11h44
  2. Réponses: 5
    Dernier message: 10/05/2010, 16h51
  3. Réponses: 3
    Dernier message: 19/03/2008, 22h11
  4. Pourquoi une seule valeur de retour pour les fonctions ?
    Par Bruno75 dans le forum Langages de programmation
    Réponses: 33
    Dernier message: 18/01/2004, 13h58
  5. Appel fonction assembleur en C
    Par grandjouff dans le forum C
    Réponses: 6
    Dernier message: 07/12/2003, 20h43

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