Onclick dans createElement s'exécute automatiquement

cousinlol Messages postés 59 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 26 octobre 2015 - 3 avril 2007 à 17:29
cousinlol Messages postés 59 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 26 octobre 2015 - 3 avril 2007 à 21:05
Bonjour,

Je crée dynamiquement une partie d'un formulaire.

Je crée cette ligne :

cell = document.createElement('a');
            texte = document.createTextNode(user_nom);
            cell.appendChild(texte);
            cell.onclick = new Function(alert('coucou'));
            ligne.appendChild(cell);


Et le coucou apparaît même sans .....

J'y pense, je fais un clique pour lancer la création de ma ligne, n'est-ce pas cela qui le perturbe mon script ?

Merci de m'émettre des avis sur le pourquoi du comment ,

Merci d'avance

3 réponses

stfou Messages postés 450 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 18 avril 2007 3
3 avril 2007 à 18:40
Bonjour,
Essaie ceci : cell.onclick = function(){alert("coucou")} aulieu de new Function, ou même (pas testé mais ça devrait marcher) tout simplement alert("coucou").

<hr /><hr />
Stfou
0
cousinlol Messages postés 59 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 26 octobre 2015
3 avril 2007 à 19:35
Merci,

Mon code exact est :

for (i=1; i<=nbr_user; i++)
{
var user_id = items.item(n).firstChild.data;
cell = document.createElement('a');cell.onclick function(){javascript:window.location '../admin/onglet_users_11.php?send_id_user='+user_id+'&send_trt=Modifier'};
}

Le problème que j'ai maintenant, c'est que la valeur de "user_id" est la valeur du dernier de la boucle pour chaque itération.

J'ai mis un alert après "var user_id" et les valeurs sont les bonnes.
0
cousinlol Messages postés 59 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 26 octobre 2015
3 avril 2007 à 21:05
Et la réponse est :

for(i=1; i<=nbr_user; i++)
{
var user_id = items.item(n).firstChild.data;
cell = document.createElement('a');
cell.user_id=user_id;cell.onclick function(){ window.location '../admin/onglet_users_11.php?send_id_user='+this.user_id+'&send_trt=Modifier'};
}

Le "this." bien sûr sans oublié de créer le lien par
cell.user_id=user_id;
0
Rejoignez-nous