Ich fühle mich blöd, diese Frage hier zu stellen, aber ich habe noch keine Lösung gefunden.OnChange-Ereignis wird zu früh in Dropdown/Eingabe ausgelöst?
Vielleicht ist das, wie das Onchange-Ereignis funktionieren soll, aber es scheint, als ob es zu früh feuert (oder dass es wieder feuern sollte, wenn die endgültige Auswahl getroffen wird). Ich habe eine Auswahl/Dropdown, die ich verwende, um einen Teil meines Bildschirms zu aktualisieren, aber ich habe festgestellt, dass in Chrome und IE9 es das Onchange-Ereignis aufgerufen wird, sobald der Benutzer startet Eingabe (funktioniert gut mit einer Mausauswahl) - Ich nehme an, das macht Sinn, weil eine neue Auswahl getroffen wird, auch wenn sie nicht tippt. Wie auch immer, der Bildschirm wird aktualisiert, aber nicht mit den Daten für die endgültige Auswahl des Benutzers im Dropdown (es ist so, als würde es beim ersten Treffer/Änderung ausgelöst, aber nicht erneut ausgelöst, wenn der Benutzer die Eingabe beendet und eine letzte Auswahl getroffen wird) .
Ich habe es auf onblur geschaltet, aber dann wird es nicht ausgelöst, bis der Benutzer die Auswahl getroffen und weitergeht, so würde ich gerne eine Lösung finden, die früher als onblur, sondern nach der endgültigen Auswahl des Benutzers ausgelöst wird gemacht.
Dies ist auf einer aspx Seite in einem MVC-progject:
<asp:DropDownList ID="employeeDropdown" runat="server" onchange="RefreshCalendarData()" />
Dies ist die js seine Berufung Funktion:
function RefreshCalendarData() {
// code omitted
Scheduler.Refresh();
}
Gibt es gute Lösungen/Abhilfen js oder jquery verwenden?
Nicht ASP.NET _use_ jQuery? Außerdem sehe ich dieses Problem (zumindest in Chrome) nicht, wo das Ereignis 'change' nicht für die endgültige Dropdown-Auswahl des Benutzers ausgelöst wird: http://jsfiddle.net/mattball/Mx7TN/ –
@ MдΓΓБДLL - ich habe es versucht Dies auch mit jQuery. Ich habe das Problem immer noch erlebt. Sie scheinen korrekt zu sein, da ich das Problem mit Ihrem Beispiel nicht wiederholen konnte, aber meine Liste enthält etwa 150 Elemente - aber ich stimme zu, dass sollte nicht wichtig sein und es scheint, dass es Feuer fangen sollte, sobald die endgültige Auswahl getroffen wird - und vielleicht ist es feuern ein zweites Mal, aber mein Refresh-Prozess dauert lange genug, dass es nicht erneut aufgerufen wird (oder es wird noch ausgeführt, so dass der Anruf ignoriert wird)? Danke für deine Hilfe. – Josh
Wahrscheinlich ist die beste Methode, Onchange nicht für ausgewählte Menüs zu verwenden und einen kleinen "Go" -Button neben der Auswahl zu haben. IE wird auch eine Änderung für jede ausgewählte Navigation mit den Pfeiltasten auslösen, die jeder Benutzer sein könnte, der nicht die Maus verwendet – Gareth