Ich weiß, dass dies eine akzeptierte Antwort hat, aber beim Lesen der Antworten auf die Antwort sehe ich einige Dinge, die ich klären kann, die anderen Leuten helfen könnten, die Probleme mit Ereignissen haben, die nach einer Wertänderung nicht ausgelöst werden.
Dadurch wird der Wert in der Dropdown-Liste ausgewählt:
$("#gate").val("gateway_2")
Wenn dieses Auswahlelement JQueryUI oder einen anderen JQuery-Wrapper verwendet, verwenden Sie die Refresh-Methode des Wrappers, um die Benutzeroberfläche zu aktualisieren und anzuzeigen, dass der Wert ausgewählt wurde. Das folgende Beispiel ist für JQueryUI, aber Sie müssen in der Dokumentation des von Ihnen verwendeten Wrappers nachsehen, um die richtige Methode für die Aktualisierung zu ermitteln:
$("#gate").selectmenu("refresh");
Wenn es ein Ereignis gibt, das ausgelöst werden muss, z. B. ein Änderungsereignis, müssen Sie dieses manuell auslösen, da die Änderung des Wertes das Ereignis nicht auslöst. Welches Ereignis Sie auslösen müssen, hängt davon ab, wie das Ereignis erstellt wurde:
Wenn das Ereignis mit JQuery erstellt wurde, d.h. $("#gate").on("change",function(){}), dann lösen Sie das Ereignis mit der folgenden Methode aus:
$("#gate").change();
Wenn das Ereignis mit einem Standard-JavaScript-Ereignis erstellt wurde, d. h. wenn das Ereignis mit der folgenden Methode ausgelöst wird:
var JSElem = $("#gate")[0];
if ("createEvent" in document) {
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", false, true);
JSElem.dispatchEvent(evt);
} else {
JSElem.fireEvent("onchange");
}