Obtenir le 'value' de 'x' champs texte

cs_Tartuffe Messages postés 39 Date d'inscription jeudi 27 mai 2004 Statut Membre Dernière intervention 18 février 2008 - 23 juil. 2004 à 18:17
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 24 juil. 2004 à 10:04
Salut,

je suis confronté à un problème de récupération de données saisies dans un nombre variable de champs 'text', afin de faire la somme des données saisies par l'utilisateur.
Ces champs sont créé dynamiquement, et s'appelle 'NOMBRE ALEATOIRE UNIQUE' (ex : 1, 5, 8, 12, 45, 124, etc.).

Dans mon form, j'ai un bouton qui appelle cette fonction afin de faire le calcul des données saisies à l'instant 't' dans les champs texte de la page, mais ca reste toujour à '0'.

Voici la fonction :
function Reste()
{
var Resultat = 0;
//Pour chacun des 150 champs potentielement présent
for (var i = 0; i<150; i++)
{
//teste l'existance du champ text
if(document.form1.i)
{
//test la presence d'un nombre positif
if (document.form1.i.value>0)
{
//Incrémente la somme
Resultat += document.form1.i.value - 0;
}
}
}
alert (Resultat);
return true;
}

Je suspecte l'appel de l'imput de ne pas être correct, mais après moulte tentative, j'arrête de tatonner et je pose la question :
- kek'un peut me dire comment appeler une 'value' d'un nombre variable de champs d'un même form ?

Tartuffe
PekLandais qui préfère le PHP...

1 réponse

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
24 juil. 2004 à 10:04
Bonjour,
ça vient de :
//teste l'existance du champ text
if(document.form1.i) qui n'est jamais vrai
je suppose que les champs
ne s'appellent pas 0,1...150 ?
( je ne pense pas que ce soit autorisé )
plusieurs solutions, tout dépend
de la définition de ces champs
° soit ils ont un id du style NOM0..NOM150
n=0;
while (document.getElementById("NOM"+n)!=null)
{ traiter document.getElementById("NOM"+n).value
n++; }
° soit ils ont le même name NOM
for (var n=0;n<NOM.length;n++)
{ traiter NOM[n].value }
° soit tous les champs text d'un formulaire
<form name=frm ...
for ( n=0;n<frm.elements.length;n++)
{ if (frm.elements[n].type=="text")
{ traiter frm.elements[n].value } }
° ou autre ?
Cordialement Bul. [Site] [[mailto:marcel.Bultez@Tiscali.fr Mail]]
0
Rejoignez-nous