comment ajouter un écouteur dynamiquement
Bonjour ,
J'ai besoin de permettre à des utilisateurs d'entrer des données :
L'utilisateur sélectionne un cours dans une liste de choix un événement de type onchange est lié à cette liste
la valeur sélectionnée est envoyée par une requête Ajax au serveur.
Le serveur me retourne un ensemble de chapitre corepondant au cours que j'insère dans une nouvelle liste.
Sur cette nouvelle liste , j'ai toujours un listener onchange c'étzit pour vous expliquer en gros ce que je veux faire.
Quand je reçois mes requêtes, j'utilise une fonction writeDiv pour créer ma liste de choix.Et je lui associe un listener par la partie en gras :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| function writeDiv(tab)
{
var monTableau = new Array() ;
var indice = monTableau.length-1 ;
monTableau[indice] = "nouveau dossier" ;
// Récuperer les positions
var selection = document.getElementById("select1") ;
var formulaire = document.getElementById("monFormulaire");
var monRepere = document.getElementById("repere") ;
var bouton = document.getElementById("selectionnez") ;
var nouveauSelect = document.createElement("select") ;
nouveauSelect.size = "1" ;
for (var i=0;i<monTableau.length;i++)
{
op = new Option(monTableau[i],"",false,false) ;
nouveauSelect.options.add(op) ;
}
formulaire.insertBefore(nouveauSelect,monRepere) ;
alert ("je sors de la fonction writeDiv() ") ;
nouveauSelect.addEventListener('change',recupererValue,false);
} |
Lorsque la nouvelle liste est créée je fais appel à une fonction recupererValue
qui ma me récupérer la valeur sélectionnée et lancer la fonction EnvoyerChoxUtilisateurs().
Voici cette fonction
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| function recupererValue(select)
{
alert ("Début de la fonction recupererValue");
alert (select) ;
if (!confirm("Voulez vous continuer ?"))
{
var monSelect = select ;
//var maValeur = monSelect.options.[monSelect.selectedIndex].value ;
var maValeur = monSelect.value ;
alert (maValeur) ; // A ce niveau j'obtiens undefinedEnvoyerChoixUtilisateurs(maValeur) ;
}
else {
alert("Vous avez décidé d'arreter") ;
}
} |
J'ai plusieurs questions :
Je dois relancer plusieurs fois la même fonction writeDiv comment faire pour qu'à chaque fois cette fonction me donne un identifiant unique pour le select qu'il crée.
2) Pour passer d'un élément à un objet de type DOM il me suffit de faire getElementById par contre si j'ai un objet de type DOM comment passer à un élément je ne sais pas si c'est très clair.
J'ai encore d'autres questions mais je serai déjà très content d'avancer sur ces deux problèmes.
Merci d'avance pour votre aide.