嘿,我在手动触发更改事件时遇到了问题。
所以我有一个具有不同值的 selectOneMenu(它就像 jsf 中的下拉菜单)。
如果我选择此下拉列表的值,则应更新数据表。如果我手动选择这个值,这可以正常工作。
现在有一种情况,我需要在 selectOneMenu 中插入一个新值。这个新值会被自动选择,但更新数据表的更改事件不会被触发......
所以基本上我有这个按钮来保存一个新值到 selectOneMenu 然后被正确选择,但是数据表没有得到更新,这就是为什么我尝试编写函数 fireChange() 并将其提供给按钮的 oncomplete :
<p:commandButton ajax="true" id="seatingPlanSave" actionListener="#{EventAssistentController.createSeatingPlan}" value="#{msg.save}" update=":createEvent:EventSeatingPlan, :createEvent:ticketTypePrices" oncomplete="fireChange()"/>
对于 fireChange() 函数,我尝试了一些不同的方法:
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);
}
}
但这些都不起作用:(
您能告诉我如何实现这一目标吗?
谢谢,泽拉