Bonjour,
j'ai un petit probl=E8me que je dois r=E9gler rapidement... j'ai un
exemple simple de ce que je veux faire.
J'ai des champs qui sont g=E9n=E9r=E9s dynamiquement. Lors de l'ex=E9cution=
de
la fonction, les champs existent. Est-ce qu'il y a une mani=E8re que la
fonction onclick que je cr=E9=E9 affiche la string "champ1"... Voici un
exemple de code qui reproduit un peu ce que ca doit faire :
function addOnClick(){
for(i=3D1;i<=3D5;i++){
var champ =3D 'champ'+ i;
document.getElementById(champ).onclick =3D function(){alert(champ);};
}
}
//la valeur i =3D 5 apr=E8s la boucle...
Lorsque le click ensuite dans le champ ayant l'id "champ1" par
exemple, ca m'affiche "champ5", parce que la valeur de la variable i
est rendu =E0 5. J'ai essay=E9 de faire :
var champ =3D String('champ'+i);
Mais ca ne fonctionne pas plus... est-ce qu'il y a une mani=E8re de le
faire ??
Ma fonction est plus complexe que cet exemple, mais ca reproduit mon
probl=E8me. je ne peux pas par exemple faire function()
{alert('champ'+i);}...
Est-ce que quelqu'un peut me dire ce qui cloche ???
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ASM
J'ai des champs qui sont générés dynamiquement. Lors de l'exécution de la fonction, les champs existent. Est-ce qu'il y a une manière que la fonction onclick que je créé affiche la string "champ1"... Voici un exemple de code qui reproduit un peu ce que ca doit faire :
function addOnClick(){ for(i=1;i<=5;i++){ var champ = 'champ'+ i; document.getElementById(champ).onclick = function(){alert(champ);}; } } //la valeur i = 5 après la boucle...
Est-ce que quelqu'un peut me dire ce qui cloche ???
Tu as bien trouvé ce qui clochait : tu attibues la même variable à plusieurs fonctions et c'est le dernier état de cette variable qui sera pris en compte partout.
function $(id) { return document.getElementById(id); }
function alarm(txt) { alert('C'est bien le :n'+txt); }
-- Stephane Moriaux et son (moins) vieux Mac déjà dépassé
J'ai des champs qui sont générés dynamiquement. Lors de l'exécution de
la fonction, les champs existent. Est-ce qu'il y a une manière que la
fonction onclick que je créé affiche la string "champ1"... Voici un
exemple de code qui reproduit un peu ce que ca doit faire :
function addOnClick(){
for(i=1;i<=5;i++){
var champ = 'champ'+ i;
document.getElementById(champ).onclick = function(){alert(champ);};
}
}
//la valeur i = 5 après la boucle...
Est-ce que quelqu'un peut me dire ce qui cloche ???
Tu as bien trouvé ce qui clochait :
tu attibues la même variable à plusieurs fonctions et c'est le dernier
état de cette variable qui sera pris en compte partout.
function $(id) { return document.getElementById(id); }
J'ai des champs qui sont générés dynamiquement. Lors de l'exécution de la fonction, les champs existent. Est-ce qu'il y a une manière que la fonction onclick que je créé affiche la string "champ1"... Voici un exemple de code qui reproduit un peu ce que ca doit faire :
function addOnClick(){ for(i=1;i<=5;i++){ var champ = 'champ'+ i; document.getElementById(champ).onclick = function(){alert(champ);}; } } //la valeur i = 5 après la boucle...
Est-ce que quelqu'un peut me dire ce qui cloche ???
Tu as bien trouvé ce qui clochait : tu attibues la même variable à plusieurs fonctions et c'est le dernier état de cette variable qui sera pris en compte partout.
function $(id) { return document.getElementById(id); }
function alarm(txt) { alert('C'est bien le :n'+txt); }
-- Stephane Moriaux et son (moins) vieux Mac déjà dépassé
richard
On 12 mai, 19:40, FLaplante wrote:
Bonjour, j'ai un petit problème que je dois régler rapidement... j'ai un exemple simple de ce que je veux faire.
J'ai des champs qui sont générés dynamiquement. Lors de l'exécuti on de la fonction, les champs existent. Est-ce qu'il y a une manière que la fonction onclick que je créé affiche la string "champ1"... Voici un exemple de code qui reproduit un peu ce que ca doit faire :
function addOnClick(){ for(i=1;i<=5;i++){ var champ = 'champ'+ i; document.getElementById(champ).onclick = function(){ale rt(champ);}; }}
//la valeur i = 5 après la boucle...
Lorsque le click ensuite dans le champ ayant l'id "champ1" par exemple, ca m'affiche "champ5", parce que la valeur de la variable i est rendu à 5. J'ai essayé de faire :
var champ = String('champ'+i);
Mais ca ne fonctionne pas plus... est-ce qu'il y a une manière de le faire ?? Ma fonction est plus complexe que cet exemple, mais ca reproduit mon problème. je ne peux pas par exemple faire function() {alert('champ'+i);}...
Est-ce que quelqu'un peut me dire ce qui cloche ???
Merci!
Un conseil general: il existe des lib JS pour manipuler le dom, sans faire des boucles pour trouver un element, ou pour le trouver par son id, sa/ses class, ou meme son nom, par sa position dans le dom, ajouter un evenement ou une classe à n elements en une seule ligne, et bien d'autres choses. on gagne un temps fou, on fait moins de faute de frappes, et ca devient enfin un plaisir de faire du JS
Je peux te conseiller jQuery que j'utilise depuis quelques temps, et qui se prend en main en 20mn http://docs.jquery.info
par ailleurs j'espere que tu utilises firebug !
bon courage
RM
On 12 mai, 19:40, FLaplante <flapla...@gmail.com> wrote:
Bonjour,
j'ai un petit problème que je dois régler rapidement... j'ai un
exemple simple de ce que je veux faire.
J'ai des champs qui sont générés dynamiquement. Lors de l'exécuti on de
la fonction, les champs existent. Est-ce qu'il y a une manière que la
fonction onclick que je créé affiche la string "champ1"... Voici un
exemple de code qui reproduit un peu ce que ca doit faire :
function addOnClick(){
for(i=1;i<=5;i++){
var champ = 'champ'+ i;
document.getElementById(champ).onclick = function(){ale rt(champ);};
}}
//la valeur i = 5 après la boucle...
Lorsque le click ensuite dans le champ ayant l'id "champ1" par
exemple, ca m'affiche "champ5", parce que la valeur de la variable i
est rendu à 5. J'ai essayé de faire :
var champ = String('champ'+i);
Mais ca ne fonctionne pas plus... est-ce qu'il y a une manière de le
faire ??
Ma fonction est plus complexe que cet exemple, mais ca reproduit mon
problème. je ne peux pas par exemple faire function()
{alert('champ'+i);}...
Est-ce que quelqu'un peut me dire ce qui cloche ???
Merci!
Un conseil general:
il existe des lib JS pour manipuler le dom, sans faire des boucles
pour trouver un element, ou pour le trouver par son id, sa/ses class,
ou meme son nom, par sa position dans le dom, ajouter un evenement ou
une classe à n elements en une seule ligne, et bien d'autres choses.
on gagne un temps fou, on fait moins de faute de frappes, et ca
devient enfin un plaisir de faire du JS
Je peux te conseiller jQuery que j'utilise depuis quelques temps, et
qui se prend en main en 20mn
http://docs.jquery.info
Bonjour, j'ai un petit problème que je dois régler rapidement... j'ai un exemple simple de ce que je veux faire.
J'ai des champs qui sont générés dynamiquement. Lors de l'exécuti on de la fonction, les champs existent. Est-ce qu'il y a une manière que la fonction onclick que je créé affiche la string "champ1"... Voici un exemple de code qui reproduit un peu ce que ca doit faire :
function addOnClick(){ for(i=1;i<=5;i++){ var champ = 'champ'+ i; document.getElementById(champ).onclick = function(){ale rt(champ);}; }}
//la valeur i = 5 après la boucle...
Lorsque le click ensuite dans le champ ayant l'id "champ1" par exemple, ca m'affiche "champ5", parce que la valeur de la variable i est rendu à 5. J'ai essayé de faire :
var champ = String('champ'+i);
Mais ca ne fonctionne pas plus... est-ce qu'il y a une manière de le faire ?? Ma fonction est plus complexe que cet exemple, mais ca reproduit mon problème. je ne peux pas par exemple faire function() {alert('champ'+i);}...
Est-ce que quelqu'un peut me dire ce qui cloche ???
Merci!
Un conseil general: il existe des lib JS pour manipuler le dom, sans faire des boucles pour trouver un element, ou pour le trouver par son id, sa/ses class, ou meme son nom, par sa position dans le dom, ajouter un evenement ou une classe à n elements en une seule ligne, et bien d'autres choses. on gagne un temps fou, on fait moins de faute de frappes, et ca devient enfin un plaisir de faire du JS
Je peux te conseiller jQuery que j'utilise depuis quelques temps, et qui se prend en main en 20mn http://docs.jquery.info