par
Ryle » 10 déc. 2007, 18:13
C'est parce que javascript autorise certaines syntaxes, mais ne permet pas de les rendre dynamiques... la syntaxe document.nom_formulaire.nom_champ est autorisé, mais sémantiquement, elle n'est pas correcte, il faudrait faire document.forms['nom_formulaire'].elements['nom_champ'] pour accéder à l'élément du formulaire de la page.
Quand tu fais "f.les_champs
.value", il ne remplace pas les_champs par sa valeur pour évaluer ensuite la chaine. En revanche f.element[les_champs].value devrait fonctionner 
Edit : A noter que tu peux également faire directement un tableau d'objets :
var f = document.monForm;
les_champs = new Array(f.champ1,f.champ2,f.champ3,f.champ4);
Tu pourras ainsi utiliser les_champs
.value, dans la mesure ou les_champs retournera alors non pas une chaine mais un objet 
C'est parce que javascript autorise certaines syntaxes, mais ne permet pas de les rendre dynamiques... la syntaxe document.nom_formulaire.nom_champ est autorisé, mais sémantiquement, elle n'est pas correcte, il faudrait faire document.forms['nom_formulaire'].elements['nom_champ'] pour accéder à l'élément du formulaire de la page.
Quand tu fais "f.les_champs[i].value", il ne remplace pas les_champs[i] par sa valeur pour évaluer ensuite la chaine. En revanche f.element[les_champs[i]].value devrait fonctionner :)
Edit : A noter que tu peux également faire directement un tableau d'objets :
[php]var f = document.monForm;
les_champs = new Array(f.champ1,f.champ2,f.champ3,f.champ4); [/php]
Tu pourras ainsi utiliser les_champs[i].value, dans la mesure ou les_champs[i] retournera alors non pas une chaine mais un objet :)