Hey, ich habe ein Problem damit, ein Change-Event manuell auszulösen.Fire change-event manuell
Also habe ich ein selectOneMenu (das ist wie ein Dropdown in JSF) mit verschiedenen Werten.
Wenn ich einen Wert dieser Dropdown-Liste wähle, sollte eine Datentabelle aktualisiert werden. Dies funktioniert korrekt, wenn ich diesen Wert manuell auswähle.
Jetzt gibt es einen Fall, wo ich einen neuen Wert in das selectOneMenu einfügen muss. Dieser neue Wert wird automatisch ausgewählt, aber das Änderungsereignis zur Aktualisierung der Datentabelle wird nicht ausgelöst ...
Also im Grunde habe ich diese Schaltfläche, um einen neuen Wert in das selectOneMenu zu speichern, der dann korrekt ausgewählt wird, aber der Datentabelle nicht aktualisiert werden, weshalb ich versuchte, die Funktion fireChange() und gab zu schreiben, dass auf die onComplete der Taste:
<p:commandButton ajax="true" id="seatingPlanSave" actionListener="#{EventAssistentController.createSeatingPlan}" value="#{msg.save}" update=":createEvent:EventSeatingPlan, :createEvent:ticketTypePrices" oncomplete="fireChange()"/>
Für die fireChange() - Funktion, habe ich versucht, ein paar anderen Dinge :
function fireChange() {
var element = document.getElementById("createEvent:EventSeatingPlan_input");
element.change();
}
function fireChange() {
var element = document.getElementById("createEvent:EventSeatingPlan_input");
$(element).trigger("change");
}
function fireChange() {
if ("fireEvent" in element)
element.fireEvent("onchange");
else {
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", false, true);
element.dispatchEvent(evt);
}
}
Aber keiner von diesen funktioniert :(
Können Sie mir bitte sagen, wie ich das erreichen kann?
Danke, Xera
Wow vielen Dank für diese großartige Antwort! Ich benutze ein und wie du mit der widgetVar und der speziellen triggerChange-Methode vorgeschlagen hast, funktioniert es jetzt einwandfrei :-) Nochmals vielen Dank und einen schönen Tag –
xeraphim