Page 1 sur 1

formulaire + select

Posté : 20 mars 2007, 14:46
par ours-blanc-
salut je suis debutant en javascript et j'aurais voulu quelques conseils sur un formulaire.
J'ai un formulaire qui se cree dynamiquement il contient un champ texte et un select avec deux options, et ses deux composants se generent autant de fois qu'un nombre passé en parametre.
Ce que je voudrais faire c'est interdire la saisie dans la zone de texte quand une des options du select est selectionnée.
voila mes questions:
-quel evenements utiliseriez vous?
-comment acceder a un champ du formulaire dont le nom est dynamique(par exemple nom0 nom1 nom2...)

j'espere que j'ai ete clair.
merci!

Posté : 20 mars 2007, 14:52
par epso
Bon alors je suis pas sur d'avoir tout bien compris, mais on va essayer:

Alors, déjà pour acceder aux noms des champs de texte, tu peut tout simplement les stocker dans un tableau....

sinon, tu peux désactiver tes champs de saise sur on onChange de ton select....

Dis moi si c'est pas ça que tu voulais savoir lol

Posté : 20 mars 2007, 15:55
par ours-blanc-
c'est bien ca que je voulais savoir! merci

par contre meme en les stockant dans un tableau comment je fais pour acceder au propriete de l'objet? je m'explique j'ai essaye ca par exemple et ca marche pas:

Code : Tout sélectionner

var type="type"+i; //i est passé en parametre a ma fonction et designe le numero du champ (type0 type1 type2...) j'ai ecrit ca: if (document.formulaire.type.value=="toto") {...} mais ca marche pas
et puis autre chose j'avais pense au onchange mais ca n'interdit pas la saisie
quand la page se charge :( alors je sais pas comment faire dans ce cas la

Variable et attribut

Posté : 22 mars 2007, 14:54
par Phil93
Salut grand Ours blanc ;-)

Pour désactiver un champ, tu peux utiliser l'attribut `disabled` :

Code : Tout sélectionner

tonObjetDom.disabled = true ;
J'ai essaye ca par exemple :

Code : Tout sélectionner

var type="type"+i; if (document.formulaire.type.value=="toto") {...}
mais ca marche pas
Il me semble que c'est normal (info à confirmer par plus fort que moi) : dans `document.formulaire.type.value`, `type` est un attribut, PAS une variable qui sera remplacée par sa valeur.

As-tu essayé avec…

Code : Tout sélectionner

document.formulaire[type].value // ou, sans avoir à déclarer une variable type : document.formulaire["type"+i].value
ou par évaluation (moins bô, mais adapté à certains besoins spécifiques)…

Code : Tout sélectionner

if ( eval("document.formulaire.type"+i+".value=='toto'") ) {…}
Bonne chance à toi,

Phil

Posté : 23 mars 2007, 18:24
par Invité
merci bien , je vais tester ca :)