Bonjour,

Voici mon soucis :
J'ai une liste B qui dépend de ma liste A
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"/>
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.

Mon soucis se trouve lorsque je veux modifier la sélection de ma listeA et B en programmation.
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);
...
);
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...

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)