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` :
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
