Cmnt aller chercher une valeur dans des champs générés aleatoirement ?

Cmnt aller chercher une valeur dans des champs générés aleatoirement ? - HTML/CSS - Programmation

Marsh Posté le 11-09-2004 à 00:00:27    

Bon, pas très simple déexpliquer dans un titre ce que je n'arrive pas faire ...
 
Alors voilà, sur une page, j'ai un certains nombre de champs texte qui sont créé, ce nombre varie de 1 à 9 ... ils ont l'appelation de "name=os1" à "name=os9"
 
J'aimerais un script qui aille vérifier les valeurs dans ces champs ...
 
document.forms["formulaire"].os1.value
document.forms["formulaire"].os2.value
...
document.forms["formulaire"].os9.value
 
Donc pour tester pas à pas j'ai fais ça :
 

Code :
  1. for(var i = 1;i < 10;i++)
  2. {
  3.  var e = i.toString();
  4.  alert(e); // à ce stade c'est bon, il m'affiche bien une alerte avec 1,2 ... 9
  5.  var os = "os" + e;
  6.  alert(os); // ici c'est toujours bon, il m'affiche bien une alerte avec os1, os2 ... os9
  7.  alert(document.forms['formulaire'].os.value); // c'est là que ça ne colle pas, qqn peut il me dire quoi faire ?
  8. }


 
Merci par avance

Reply

Marsh Posté le 11-09-2004 à 00:00:27   

Reply

Marsh Posté le 11-09-2004 à 00:42:43    

Bon, j'ai un peu avancé ...
 
En mettant ça :
 

Code :
  1. for(var i = 0;i < 10;i++)
  2. {
  3.   if(document.forms["formulaire"].os[i])
  4.   {
  5.     j = i*2;
  6.     k = j + 1;
  7.     if (document.forms["formulaire"].typemachine[j].checked == false && document.forms["formulaire"].typemachine[k].checked == false)
  8.     {
  9.       a = 1;
  10.       document.forms["formulaire"].imgtypemachine[i].style.display = "inline";
  11.     }
  12.     else
  13.     {
  14.       document.forms["formulaire"].imgtypemachine[i].style.display = "none";
  15.     }
  16.   }
  17. }


 
Ca fonctionne un peu mieux ... mais du fait que "typemachine" représente 2 boutons radios par "groupe", ça pose encore des pb ...
 
En gros, si j'ai 3 fois une meme partie du formulaire il me faudrait ça :
 
<input type="radio" name="test[0]">Oui
<input type="radio" name="test[0]">Non
 
<input type="radio" name="test[1]">Oui
<input type="radio" name="test[1]">Non
 
<input type="radio" name="test[2]">Oui
<input type="radio" name="test[2]">Non
 
Et dans mon script il faudrait donc que je verifie un truc dans ce genre :
 
document.forms["formulaire"].typemachine[0][0].checked == false && document.forms["formulaire"].typemachine[0][1].checked == false
 
document.forms["formulaire"].typemachine[1][0].checked == false && document.forms["formulaire"].typemachine[1][1].checked == false
 
document.forms["formulaire"].typemachine[2][0].checked == false && document.forms["formulaire"].typemachine[2][1].checked == false
 
J'ai essayé mais ça ne marche pas :(
 
Je ne sais pas si je suis assez clair ...
 
++

Reply

Marsh Posté le 11-09-2004 à 00:47:16    

Bon comme il est tard et que je ne pense pas qu'on me réponde ce soir, je vais en profiter pour essayer d'expliquer encore plus clairement. Imaginez un formulaire de ce genre :
 

Etes-vous satisfait du modele 1 ?  o OUI   o NON
Etes-vous satisfait du modele 2 ?  o OUI   o NON
Etes-vous satisfait du modele n ?  o OUI   o NON


 
Ensuite je voudrais un script qui affiche une petite image juste devant la 1ere ligne si on n'a séléctionné ni oui ni non pour cette meme ligne ... et idem pour les autres, sachant que le nombre de ligne est aleatoire (de 1 à 9 lignes suivant les cas)
 
Merci d'avance

Reply

Marsh Posté le 11-09-2004 à 11:51:40    

Tu donne un id a tes elements, puis tu peux faire ca :

Code :
  1. for (var i = 1; i<10; i++) {
  2.   var el = document.getElementById('os'+i);
  3.   alert(el.value);
  4. }


Reply

Marsh Posté le 11-09-2004 à 16:43:23    

Merci Cerel, mais ça ne résoud pas vriament mon problème ... etant donné que j'ai 2 bouton radio à chaque fois, donc les 2 premiers bouton radio auront le meme id, les 2 suivant aussi mais different que les 1er etc... merci quand meme :)
 
Donc sinon j'ai encore avancé ... ça ça marche presque :
 

Code :
  1. for(var i = 1;i < 10;i++)
  2. {
  3.   if(eval('document.forms["formulaire"].typemachine' + i))
  4.   {
  5.     if(eval('document.forms["formulaire"].typemachine' + i + '[0].checked == false && document.forms["formulaire"].typemachine' + i + '[1].checked == false'))
  6.     {
  7.       a = 1;
  8.       document.forms["formulaire"].imgtypemachine[i].style.display = "inline";
  9.     }
  10.     else
  11.     {
  12.       document.forms["formulaire"].imgtypemachine[i].style.display = "none";
  13.     }
  14.   }
  15. }


 
Le pb est que si j'ai 5 fois :
 

Etes-vous satisfait du modele n ?  o OUI   o NON


 
Ca va marcher 5 fois mais apres ça met une erreur ...
 
A priori la ligne :
 
if(eval('document.forms["formulaire"].typemachine' + i))
 
Ne renvoie pas TRUE ou FALSE suivant que l'element existe ou non...
 
Donc comment faire, en JS, pour verifier ou non l'existence d'un element de formulaire ?
 
Merci par avance.

Reply

Sujets relatifs:

Leave a Replay

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