Transformer une chaine en ligne de code

cs_AlexP Messages postés 2 Date d'inscription jeudi 2 mai 2002 Statut Membre Dernière intervention 3 mai 2002 - 3 mai 2002 à 17:32
cs_cer Messages postés 5 Date d'inscription vendredi 24 mai 2002 Statut Membre Dernière intervention 26 mai 2002 - 24 mai 2002 à 23:42
Bonjour,

J'ai écris un programme qui me génére des lignes de code. Or javascript ne les execute pas.

Ex :

var i=5
var chaine ="formulaire.checkbox"+i+"checked";
...
chaine = true;

(Equivalent à formulaire.checkbox5.checked = true; Or lorsque j'écris ce code directement cela fonctionne ???)

Merci

2 réponses

pi0up51 Messages postés 103 Date d'inscription vendredi 13 juillet 2001 Statut Membre Dernière intervention 26 août 2003
10 mai 2002 à 14:52
Il ne faut pa faire chaine = true mais document.write chaine je pense, pcqe en disant chaine = true tu di just ke chaine est à l'état true alor que document.write chaine écrit dans le document la chaine !! Je pense k'il faut en fait générer un script js a partir d'un autre script js ;)

@tte et bonn' prog'
pi0up51
0
cs_cer Messages postés 5 Date d'inscription vendredi 24 mai 2002 Statut Membre Dernière intervention 26 mai 2002
24 mai 2002 à 23:42
cyril

Quand tu ecris cela:
var i=5
var chaine ="formulaire.checkbox"+i+"checked";
...
chaine = true;
tu affecte deux valeur succesives a la variable chaine;"formulaire.checkbox"+i+"checked" puis true, deux valeur du type chain puis boleen.
En fait il faudrait faire comprendre a javascript que la variable que tu cherche a cibler est le contenu d'un autre variable. C'est l'adressage indirect. Pour l'instant je n'ai pas trouvé la solution. Mais avec une ligne de commande en plus tu peux arriver au meme resultat:
chaine="nomDeLaVariable";
opérateur="=";
valeur="maValeur";

eval(chaine+opérateur+valeur+";");

soit dans ton cas
chaine="formulaire.checkbox"+i+"checked";
valeur="true";

eval(chaine+operateur+valeur+";") ;
0
Rejoignez-nous