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 :

recuperer select tableau


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2008
    Messages : 198
    Points : 96
    Points
    96
    Par défaut recuperer nombre input
    Bonjour, j'ai plusieurs input de différent type (radio, text et combo) avec le même name=Perso['valeur'] dans ma page.

    J'aimerais faire une validations de ses select et pour commencer faire un count et par la suite boucler sur chacun.

    J'ai essayer de faire comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.forms['formulaire'].elements['Perso[]'].length;
    Mais je n'arrive à rien, quelqu'un pourrais m'aider ? Merci

  2. #2
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Essaye ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms[0].elements[3].length;
    Ou '0' est le premier formulaire de la page et '3' le 3eme element de ce même formulaire.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2008
    Messages : 198
    Points : 96
    Points
    96
    Par défaut
    Est-il possible de calculer le nombre de "select" Perso[] ?

  4. #4
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 143
    Points
    11 143
    Par défaut
    bonjour,

    ce sont des select ou des input ?
    Seuls les input ont un type radio, text et combo.

    Tu peux faire ceci :
    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 tabInput = document.getElementByTagName("input");
    var i, cpt;
     
    cpt = 0;
     
    for (i=0; i<tabInput.lenght; i++)
    {
         if (tabInput[i].name == "Perso[]") // attention test sensible à la casse
         {
             cpt++;
         }
     
    }
     
    alert(cpt); // nombre d'input dont le name est "Perso[]"
    par contre, je crains que [] pose problème A vérifier.

  5. #5
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Je reviens vers toi car j'ai peut être une solution avec getElementsByName qui retourne une collection d'objets du même name. A voir.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var x=document.getElementsByName("Perso[]");
    alert(x.length);

  6. #6
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    Citation Envoyé par jeepibmx Voir le message
    Perso['valeur']
    il manque 'valeur' dans les codes...

  7. #7
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 143
    Points
    11 143
    Par défaut
    Citation Envoyé par riete Voir le message
    Je reviens vers toi car j'ai peut être une solution avec getElementsByName qui retourne une collection d'objets du même name. A voir.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var x=document.getElementsByName("Perso[]");
    alert(x.length);
    l'ennui est que getElementsByName() est une méthode dépréciée par Firefox et je crois même que dans certains cas elle ne fonctionne pas :
    http://www.developpez.net/forums/sho...d.php?t=281838

    C'est pour cette raison que je privilégie getElementsByTagName() quitte à faire une boucle ensuite ou getElementById().

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2008
    Messages : 198
    Points : 96
    Points
    96
    Par défaut
    Merci beaucoup je vais essayer !

    Pour le type de mes input :

    je connais pas trop le terme en html mais bon vous allez surment comprendre !
    Combobox
    text
    radio

    Le nombre de ses input varie, l'utilisateur peut décider de mettre 3question sur son site don 2 textbox et 1 combo.

    Je cherche à faire un count du nombre d'input sur la page pour ensuite faire une validation que ses champs sont bien remplis !

    Merci et je vous redonne des nouvelles !

  9. #9
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Citation Envoyé par Auteur Voir le message
    l'ennui est que getElementsByName() est une méthode dépréciée par Firefox et je crois même que dans certains cas elle ne fonctionne pas :
    http://www.developpez.net/forums/sho...d.php?t=281838

    C'est pour cette raison que je privilégie getElementsByTagName() quitte à faire une boucle ensuite ou getElementById().
    Tu as entièrement raison , je viens d'en faire les frais moi même. Je me demandais pourquoi certain bouquins est sites en parlaient alors que d'autre passaient cette fonction sous silence. La réponse est simple, il y a de vieux bouquins et de vieux site et de vieux naze comme moi pour les utiliser
    (Je le dis car certain le pensent surement très fort )

    Réponse à jeepibmx
    Par rapport à ta dernière question jeepibmx, il te suffit de boucler sur le différents type de Tag que tu veux 'checker' en utilisant la fonction proposée par Auteur ou tu remplace "input" par le nom de tes Tag à vérifier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var tabInput = document.getElementByTagName("input");
    Tu peux aussi 'scanner' tous les Tag de ton formulaire il me semble ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function countLoop(obj){
    	var ctext = 0;
    	var ccheck = 0;
     
    	for (i = 0; i < obj.elements.length; i++){
     
    		if (obj.elements[i].type =="text") ctext++;
    		if (obj.elements[i].type =="checkbox") ccheck++;
    	}
     
    	alert("text=" + ctext +"\ncheckbox=" + ccheck);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <form onsubmit="countLoop(this);">
    <input name="myInput1" type="text" size="20" /><br />
    	<input name="myInput2" type="text" size="20" /><br />
    	<input name="myInput3" type="text" size="20" /><br /><br />
     
    	box1<input name="mycheckbox1" type="checkbox">
    	box2<input name="mycheckbox1" type="checkbox"><br /><br />
     
    	<input name="mytext" id=1 type="text" size="20" value="Pas cochee"/><br />
    <input type="submit" value="Count loop" />

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2008
    Messages : 198
    Points : 96
    Points
    96
    Par défaut
    je n'arrive pas a récupérer les éléments qui s'appellent Perso car dans le [] il y a une valeur, avez vous une idée ?

    Voici mon code :

    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
     
    function test(){
     
      var countText = 0;
      var nbInput = document.getElementsByTagName('input').length;
      var nomInput = document.getElementsByTagName('input');
     
      for (i = 0; i < nbInput; i++){
    	if (nomInput[i].type == 'text'){
    		if (nomInput[i].name == "Perso[]"){
    			alert('test');
    		}
    		countText++;
    	}
      }
    }

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2008
    Messages : 198
    Points : 96
    Points
    96
    Par défaut Solution
    Voici la solution !

    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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
     
    <title></title>
     
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta http-equiv="Content-Language" content="fr" />
     
     
    <script type="text/javascript">
    <!--
    function fonctionTest()
    {
      var countText = 0;
      var i;
      var nomInput = document.getElementsByTagName('input');
      var nbInput = nomInput.length;
     
      for (i = 0; i < nbInput; i++)
      {
        if (nomInput[i].type == 'text')
        {
          if (nomInput[i].name.search(/(^Perso\[[0-9]+\])$/g)!=-1)
          {
            alert(nomInput[i].name);
          }
          countText++;
        }
      }
     
      alert(countText);
    }
    //-->
    </script>
     
    </head>
     
    <body onload="fonctionTest()">
     
    <input type="text" name="Perso[0]" />
    <input type="button" name="Perso[1]" value="bouton 1" />
    <input type="button" name="Perso[2]" value="bouton 2"  />
    <input type="text" name="Perso[3]" />
    <input type="text" name="Perso[4]" />
     
    </body>
    </html>

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

Discussions similaires

  1. recuperer un tableau de integer dans un html:select
    Par amine1980 dans le forum Struts 1
    Réponses: 5
    Dernier message: 22/12/2006, 16h00
  2. recuperer un tableau de checkbox
    Par jojo22222 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/05/2006, 08h43
  3. Réponses: 5
    Dernier message: 10/04/2006, 15h12
  4. [Tableaux] Recuperer un tableau
    Par cescu dans le forum Langage
    Réponses: 5
    Dernier message: 17/02/2006, 18h06
  5. Recuperer un tableau php dans javascript
    Par 17mounir dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/08/2005, 09h07

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