Abhängige Dropdownlisten mit jquery initialisieren

Ich habe mir zwei abhängige Dropdownlisten nach dem Yii Tutorial gebaut.

Nun möchte ich beim Editieren gerne das Formular initialisieren und auch die richtigen Dropdownwerte schon auswählen.

Um dies zu gewähleisten wähle ich die erste Liste aus, führe dann ein .change() aus und möchte dann die zweite Liste auswählen(aus den geladenen Listenpunkten).




$("#category").val(node.category.id).attr("selected", "selected");

$("#category").change();

$("#NodeFormModel_type").val(node.node_type.identifier).attr("selected", "selected");



Funktioniert aber leider nicht, weil die dritte Zeile nicht wartet bis das Request was von change gestartet wird beendet ist. change() hat aber auch leider keinen Callback. Hat jemand eine Idee wie ich das elegant lösen kann?

change() ist eine Funktion/Event von jQuery und hat ein Callback!

Das hilft mir leider nicht wirklich weiter. .change() rufe ich ja nur auf, um das Ajax Request der ersten Dropdownliste anzuschmeißen. Wenn der durchgelaufen ist, soll erst das zweite Feld ausgewählt werden. Den Callback des Ajaxrequests kann ich aber nicht verwenden, weil das ja nur bei der Formularinitialisierung geschehen soll und nicht jedes Mal wenn der User die Liste auswählt.

Falscher Ansatz!

Du solltest testen, ob der Wert der ersten DropDown Liste gesetzt ist. Wenn das der Fall ist, dann brauchst du nur die Daten für die zweite Liste reinladen. (ganz ohne JavaScript)

Genau das möchte ich ja hier vermeiden… Die Daten werden schon geladen wenn die Seite geladen wird, so dass sie parat sind wenn der User bei den Dropdownlisten angelangt ist.