Page 1 sur 1

erreur sur array

Posté : 25 mars 2008, 10:57
par Invité
Bonjour à tous,

j'ai le tableau js suivant contenant les noms de champs texte d'un formulaire:
nm_chps = new Array(f.cb_secteuracti, f.cb_employ, f.cb_poste, f.cb_adremployeur);
J'essaye de boucler sur ce tableau pour attribuer une valeur par défaut aux champs texte
for (i in nm_chps)
{
   nm_chps[i].value = "non applicable";
}
Je reçois l'erreur
nm_chps has no properties


Voyez vous ce que j'ai oublié?
Merci pour vos réponses.

Posté : 25 mars 2008, 11:04
par Invité
un oubli dans le post au début du code:
var f = document.adminForm;
où "adminForm" est l'id et le nom de mon formulaire.
J'ai bien ça dans mon code mais ça ne change pas l'erreur.

Posté : 25 mars 2008, 11:24
par jojolapine
Il faut essayer de debugger en affichant les variables intermédiaires.
Que donnent
alert(f);
alert(nm_chps);
et
alert(nm_chps[i]); //dans la boucle

Posté : 25 mars 2008, 15:23
par h0_noMan
for (i in nm_chps)
{
   nm_chps[i] = "non applicable";
} 
nm_chps est une chaine de caractères donc elle n'a pas de propriété de type value.
Tu y accèdes directement.

Posté : 25 mars 2008, 15:32
par Cyrano
Non non les copains, c'est plus subtil que ça et notre ami n'avait au départ posté qu'une partie de son code.
var f = document.adminForm;
nm_chps = new Array(f.cb_secteuracti, f.cb_employ, f.cb_poste, f.cb_adremployeur);
ça, je suppose que ce sont non des chaines mais des objets dans un formulaire, je me trompe ??

Si c'est bien ça, il faudrait commencer par vérifier que ta balise form a bien un attribut id avec le nom utilisé et même chose pour les champs traités, puis l'écrire de façon un poil plus stricte et ça marchera à tous les coups :
var f = document.forms.adminForm;
var nm_chps = [f.elements.cb_secteuracti, f.elements.cb_employ, f.elements.cb_poste, f.elements.cb_adremployeur];
Note au passage l'utilisation de [] au lieu de new Array().

Et là, l'appel de nm_chps.value a des chances de fonctionner :-k