Hej, mam problem z ręcznym wywołaniem zdarzenia zmiany.Ręczna wymiana ognia
Tak więc mam selectOneMenu (nie jest jak dropdown w jsf) z różnymi wartościami.
Jeśli wybiorę wartość z tej rozwijanej listy, należy zaktualizować datatable. Działa to poprawnie, jeśli wybiorę tę wartość ręcznie.
Teraz jest przypadek, w którym muszę wstawić nową wartość do selectOneMenu. Ta nowa wartość zostanie wybrana automatycznie, ale zdarzenie change, aby zaktualizować datatable, nie zostanie uruchomione ...
Tak więc mam ten przycisk, aby zapisać nową wartość w selectOneMenu, która następnie zostanie wybrana poprawnie, ale DataTable nie zostanie zaktualizowane, dlatego starałem się napisać fireChange function() i dał to do onComplete przycisku:
<p:commandButton ajax="true" id="seatingPlanSave" actionListener="#{EventAssistentController.createSeatingPlan}" value="#{msg.save}" update=":createEvent:EventSeatingPlan, :createEvent:ticketTypePrices" oncomplete="fireChange()"/>
dla fireChange() - funkcja, próbowałem kilka różnych rzeczy :
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);
}
}
Ale żadna z tych czynności nie działa :(
Czy możesz mi powiedzieć, jak mogę to osiągnąć?
Dzięki Xera
Wow bardzo dziękuję za ten wielki odpowiedź! Używam i jak zasugerowałeś z widgetVar i specjalną metodą triggerChange, działa to teraz doskonale :-) Jeszcze raz dziękuję i życzę miłego dnia –
xeraphim