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 :

Récupérer tous les champs de même nom


Sujet :

JavaScript

  1. #1
    hlr
    hlr est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 57
    Points : 64
    Points
    64
    Par défaut [Résolu] Récupérer tous les champs de même nom
    Salut à tous,

    Voilà mon problème : dans mon formulaire, j'ai 4 champs de saisie qui ont tous les mêmes noms (pour des raisons techniques, je ne peux pas les changer pour les distinguer, je dois me servir juste du rang de chacun)
    J'ai besoin de consulter la valeur de chaque champ dans une fonction Javascript, et là je bloque

    Voici mon bout de 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
    17
    18
    19
    20
    21
    22
     
    <html>
    <body>
    <form name="myForm" action="noAction">
    	Champ1 : <input type="text" name="champ[2]" size="10"><br>
    	Champ2 : <input type="text" name="champ[2]" size="10"><br>
    	Champ3 : <input type="text" name="champ[2]" size="10"><br>
    	Champ4 : <input type="text" name="champ[2]" size="10"><br>
    	<script language="JavaScript"><!--
    	function getValues() {
    		var field = document.getElementById("champ[2]");
    		alert(field.value);
    		alert('Champ1 : ' + field[0].value);
    		alert('Champ1 : ' + field[1].value);
    		alert('Champ1 : ' + field[2].value);
    		alert('Champ1 : ' + field[3].value);
    	}
    	//--></script>
    	<a href="javascript:getValues();">Lire les valeurs</a>
    </form>
    </body>
    </html>
    La question est :
    - la fonction getElementById() ne me ramène que le premier champ, comment récupérer les autres ?
    - pire encore : getElementById() ne fonctionne par sous Firefox, est-ce qu'il y a une fonction compatible ?

    Merci de vos réponses

  2. #2
    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
    document.myForm.elements["champ[2]"][indice]
    indice=1...

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
          function getValues() 
          { 
            var field = document.getElementsByName("champ[2]"); 
            for (var i = 0 ; i < field.length ; i ++)
            {
              alert('Champ ' + (i + 1) + ' : ' + field[i].value); 
            }
          }
    - pire encore : getElementById() ne fonctionne par sous Firefox, est-ce qu'il y a une fonction compatible ?
    Pour que cela fonctionne, il faut déclarer l'attribut "id" dans chaque élément.

  4. #4
    hlr
    hlr est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 57
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par jeca
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
          function getValues() 
          { 
            var field = document.getElementsByName("champ[2]"); 
            for (var i = 0 ; i < field.length ; i ++)
            {
              alert('Champ ' + (i + 1) + ' : ' + field[i].value); 
            }
          }
    - pire encore : getElementById() ne fonctionne par sous Firefox, est-ce qu'il y a une fonction compatible ?
    Pour que cela fonctionne, il faut déclarer l'attribut "id" dans chaque élément.
    OK merci de vos réponses, je vais essayer ça

  5. #5
    hlr
    hlr est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 57
    Points : 64
    Points
    64
    Par défaut
    [quote="jeca"]Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
          function getValues() 
          { 
            var field = document.getElementsByName("champ[2]"); 
            for (var i = 0 ; i < field.length ; i ++)
            {
              alert('Champ ' + (i + 1) + ' : ' + field[i].value); 
            }
          }
    Merci pour ce code, cela marche

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

Discussions similaires

  1. UPDATE sur tous les champs en même temps > saisie rapide ?
    Par sendme dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 30/01/2011, 11h52
  2. Réponses: 2
    Dernier message: 03/11/2010, 16h18
  3. Récupérer tous les champs d'un formulaire
    Par grunk dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/10/2007, 20h13
  4. Réponses: 16
    Dernier message: 12/07/2007, 16h35
  5. Récupérer tous les champs avec un DISTINCT
    Par Le Mérovingien dans le forum Requêtes
    Réponses: 3
    Dernier message: 04/11/2005, 23h58

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