repérer un champ javascript dynamiquement

repérer un champ javascript dynamiquement - HTML/CSS - Programmation

Marsh Posté le 24-05-2006 à 11:24:24    

en fait, j'ai un petit souchi :
j'ai chopé un script qui permet de cocher toutes les checkbox d'un formulaire :
Mais j'essaie de le modifier pour qu'il aille récupérer la valeur d'un champ dont le nom contient la valeur de la checkbox en cours. Je m'explique :
 
3 Checkbox. La premiere a la valeur 12 , la seconde la valeur 10, et la derniere la valeur 2.
 
Le but , c'est que dans la boucle qui va tout cocher, je parvienne a récupérer :
 
pour la premiere : le contenu du champ "champ_12"
la seconde : le contenu du champ "champ_10"
la derniere : le contenu du champ "champ_2"
 
ici "champ_" sert de préfixe.comme ils sont dans le meme formulaire , j'avais fait :
 

Code :
  1. function check(field,Formulaire)
  2. {
  3.  if (checkflag == "false" )
  4.  {
  5.   for (i = 0; i < field.length; i++)
  6.   {
  7.    field[i].checked = true;
  8.    valeur = field[i].value ;
  9.    alert ( valeur + ' => ' Formulaire['champ_' + valeur ].value) ;
  10.   }
  11.   checkflag = "true";
  12.  }
  13.  else
  14.  {
  15.   for (i = 0; i < field.length; i++)
  16.   {
  17.    field[i].checked = false;
  18.   }
  19.   checkflag = "false";
  20.  }
  21.  return checkflag ;
  22. }


Mais le alert plante. :/
 
Une idée SVP ?

Reply

Marsh Posté le 24-05-2006 à 11:24:24   

Reply

Marsh Posté le 24-05-2006 à 11:47:45    

il est pas terrib terrib ton script ;)
Je te montre comment je l'aurais fait:

Code :
  1. var checkflag = false; /*** au départ aucune checkbox n est cochée ***/
  2. function checkAll(){
  3.   checkflag = ! checkflag; //on inverse le flag
  4.   var inpNodes = document.getElementsByTagName('input');
  5.   foreach(input in inpNodes){
  6.     if ( input.getAttribute['type'] == 'checkbox'){
  7.       input.checked = checkFlag;
  8.       alert(input.value + ' => ' + document.getElementById('champ_'+input.value);
  9.     }
  10.   }
  11. }


Et tu oublies pas de mettre un id ayant dans tes inputs texts.

Reply

Marsh Posté le 24-05-2006 à 13:11:18    

ok ok, ca marche :) Merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed