onchange wird nicht ausgelöst, nachdem Sie programmgesteuert ändern von html-select-dropdown
Habe ich ein select in HTML
<select id="league" name="league">
was höre ich für änderungen in meinem javascript.
var league = dojo.byId("league");
dojo.connect(league, "onchange", function (evt) { //do stuff }
Welche gut funktioniert.
Allerdings habe ich einen link, den ich klicken kann, welche updates der wählen Sie:
<a href=javascript:void(0) onclick="updateSelection(league);"> League </a>
Der link funktioniert, wie es aktualisiert den ausgewählten Wert der wählen Sie mit der folgenden Funktion.
function updateSelection(NewLeague){
dojo.byId('league').value = NewLeague; //works
dojo.byId('league').onChange; //this isnt working
//dojo.byId('league').onChange(); //this throws: TypeError: dojo.byId("league").onChange is not a function
}
Mein problem, wie ich gelesen habe, durch andere Stapel Beiträge ist, dass programmgesteuert aktualisieren Sie den Wert nicht trigger onChange, also muss ich anrufen onchange im code (siehe oben). Wie pro die inline-Kommentare, die onChange wird nicht ausgelöst, oder wirft einen Fehler aus. Mein Erster Gedanke, dass es hat etwas zu tun mit dem dojo.Verbinden Sie das hört für onChange, aber ich habe nicht gefunden, alle Informationen, die sagt, ich kippe hierzu noch eine Erklärung, wie man sich es.
Irgendwelche Ideen?
NÖ, es wirft die "ist nicht eine Funktion" Fehler
Unrelated: versuchen Sie styling ein
<button>
anstatt die alten <a href="javascript:void(0)">
hack.InformationsquelleAutor KHibma | 2012-10-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Select onchange nicht ausgelöst für programattic änderungen, die Sie brauchen, um das Feuer es sich mit
league.onchange();
Wie bereits von @Greg, der Aufruf sollte in Kleinbuchstaben geschrieben sein.
Außerdem, ich weiß nicht, ob das dojo hat eine trigger-Methode, aber in jQuery dieses würde getan, als
jQuery('#league').trigger('change')
.Je nach Ihrer version von dojo können Sie auch prüfen wollen: http://dojotoolkit.org/reference-guide/1.8/dojo/connect.html
Sorry, Ich habe versucht Kleinschreibung in updateSelection als gut. Aus irgendeinem Grund habe ich den spell onchange Kleinschreibung im dojo.Schließen, sonst wird es nicht fangen es
danke, aber auch mit, dass ich weiterhin keine Funktion Fehler auf.
Vielen Dank, ich werde akzeptieren dies als die Antwort, als ich bin sicher, es löst das Problem - nur nicht in meinem Fall. Meine beste Vermutung ist, mein problem hat etwas damit zu tun, wie ich angeschlossen habe, um das onchange-Ereignis und die Funktion, die versuchen, um es zu lösen auf einer anderen Ebene funktioniert nicht.
InformationsquelleAutor Bob Davies
Haben Sie versucht, nur den Aufruf der wählen durch es ist die id mit normalen js?
InformationsquelleAutor Rick Calder
Wie schon andere gesagt haben, müssen Sie, um das Ereignis auszulösen, sich selbst, nur die Einstellung der Wert nicht tun. Finden Sie den code auf Wie zum trigger-Ereignis in JavaScript? zu sehen, wie in a cross-browser Weg.
InformationsquelleAutor singpolyma