Bonjour,
Voici mon soucis :
J'ai une liste B qui dépend de ma liste A
Quand je sélectionne un élément de ma liste A ça modifie ma liste B, qui rempli un champ input. Tout ceci fonctionne bien quand je le fais à la mano.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <select id="listA"> </selec> <select id="listB"> </selec> <input id="monInput" value="champs rempli sur l'event change de ma liste B"/>
Mon soucis se trouve lorsque je veux modifier la sélection de ma listeA et B en programmation.
Le soucis est que comme le .change() met un peu de temps à remplir ma liste B; mon instruction suivante ne peut pas sélectionner la valeur de ma liste B puisqu'elle n'est pas encore rempli...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 $("#listA").on("change, function* (... // mon code qui charge ma listB à l'aide d'une requete asynchrone ); $(unbouton).on("click",function* (..){ ... var a = data recup depuis un objet JSON; var b = data recup depuis un objet JSON; $(listA).val(a); $(listA).change(); //Déjà là je suis obligé de déclencher l'événement manuellement sinon ça ne fait rien $(listB).val(b); ... );
Avez vous une idée sur comment je peux faire pour "patienter" la fin de l'event ? (j'ai déjà tester des truc crade à base de sleep mais rien à faire étant donné que dans mon onChange j'ai de l'ascynchrone) peut être qu'il y a une solution à l'aide des promises/yield (chose que je ne maîtrise pas du tout) non ?
Note : je pense aussi avoir un problème de conception du fait que je dois appeler manuellement .change() (je peux me montrer, et c'est peut etre une bonne facon de faire)
Partager