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 :

vérification de formulaires : tous les éléments sont undefined


Sujet :

JavaScript

  1. #1
    Membre actif Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Points : 249
    Points
    249
    Par défaut vérification de formulaires : tous les éléments sont undefined
    Bonjour,

    lors de la vérification d'un formulaire dont les éléments sont créés dynamiquement en php, j'aimerais le vérifié en js avant l'envoie.

    Pour cela je me suis aidé de http://javascript.developpez.com/faq...#verifTousTxts Mais je n'arrive pas à mes fins.

    En effet, tous les éléments sont bien parcourus mais les valeurs, classeName, ... sont undefined et je me retrouve bloqué.

    (je détecte l'attribut className car je fais une vérification différente en fonction des classes)

    Sauriez vous d'ou cela provient?

    Voici comment je vérifie le formulaire (enfin comment je récupère les valeurs)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     var inputList = document.getElementById('formWebpages').elements;
       var alertTxt = "";
     
       for (unInput in inputList){
          //if(unInput.type=='text' && unInput.className=='name'){
             alertTxt += "  type:" + unInput.type + "  nom:" + unInput.value + "  classe:" + unInput.className + "   " + unInput +  "\n";
          //}
       }
      // if(alertTxt != ""){
          alert(alertTxt);
          return false;
      // }
    Du coup, l'alert m'affiche que des trucs du genre :
    type:undefined nom:undefined classe:undefined i
    Merci pour votre aide.

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut


    férifies déja ça :
    document.getElementById('formWebpages').elements

    fais plutot un document.getElementById('formWebpages').getElementsByTagName('input')

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Points : 430
    Points
    430
    Par défaut
    A mon avis tu peux t'inspirer de ca dans les contributions

    Tutoriel Vérification de Formulaire

  4. #4
    Membre actif Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Points : 249
    Points
    249
    Par défaut
    Merci pour votre aide, mais cela ne change rien : j'accède bien aux éléments mais tous ont des valeurs "undefined"

    j'utilise maintenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     var inputList = document.getElementById('formWebpages').getElementsByTagName('input')
    Voici un snapshot de l'alert :

  5. #5
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    peux tu nous montré ton code généré ?

  6. #6
    Membre actif Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Points : 249
    Points
    249
    Par défaut
    voici une partie du code généré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
          <form id="formWebpages" action="" method="POST" onsubmit="return checkWebpagesForm();">
             <input class="name" type="text" name="name_21" value="une valeur" maxlength="40"/>
             <input class="title" type="text" name="title_21" maxlength="60" value="une autre valeur" />
             <input class="Xbutton" type="button" value="Editer" onclick="window.open('./max.php?p=21&h=' + screen.height, 'windowId_21', 'width=800, toolbar=no, scrollbars=yes, status=yes, location=no');"/>
             <input class="endForm" id="saveButton" type="submit" name="saveWebpages" value="Submit"/>
          </form>
    j'ai enlevé la mise en forme mais n'ai touché à rien d'autre.

    Merci encore

  7. #7
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function VoirProperties(){
    	var inputList = document.getElementById('formWebpages').getElementsByTagName('input');
    	var alertTxt = "";
    	for(i = 0 ; i < inputList.length ; i++){
    		alertTxt += "  type:" + inputList[i].type + "  nom:" + inputList[i].value + "  classe:" + inputList[i].className + "   " + inputList[i] +  "\n";
    	}
    	alert(alertTxt);
    }

  8. #8
    Membre actif Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Points : 249
    Points
    249
    Par défaut
    Merci beaucoup
    cela fonctionne

    Je n'aurais jamais pensé que cette strcture de boucle ( for(unInput in inputList){ ... } )
    ne fonctionne pas.

  9. #9
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    La bonne syntaxe est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for each (variable in objet){
    }

  10. #10
    Membre actif Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Points : 249
    Points
    249
    Par défaut
    ok, c'est noté.

    Il faudrait modifier l'erreur de la FAQ : http://javascript.developpez.com/faq...#verifTousTxts

    Je ne sais pas si tu peux t'en charger (il est dit dans la faq de contacter un modérateur)

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

Discussions similaires

  1. Affichez tous les élément d'un sous-Formulaire
    Par Beaudelicius dans le forum VBA Access
    Réponses: 5
    Dernier message: 14/08/2012, 22h56
  2. Réponses: 0
    Dernier message: 06/04/2012, 16h41
  3. Réponses: 5
    Dernier message: 08/04/2009, 12h15
  4. parcourir tous les éléments de mon formulaire
    Par Henry9 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/08/2007, 13h22
  5. Réponses: 7
    Dernier message: 16/01/2007, 16h10

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