我发现这个问题已经以不同的形式被问过好几次了,但我仍然需要一些帮助,因为不能像示例中那样得到这个。
我有一个带有 PrimeFaces 的 JSF 2 页面,它包含以下隐藏按钮,我需要从 javascript 在 pageUnLoad 上调用该按钮。
JSF 有:
// Supposed to be hidden eventually
<h:commandButton id="doStuff" action="#{myBean.callMethod()}" />
javascript有:
var stuff = new Object();
$(window).bind('beforeunload', function() {
stuff.doStuff();
});
stuff.doStuff = function() {
// var hidden = $("#doStuff"); // Incorrect
var hidden = document.getElementById("formId:doStuff"); // Correct
if (hidden === undefined) {
// Some logging
} else {
hidden.click();
}
}
managedBean 有:
@ManagedBean(name = "myBean")
@RequestScoped
public class MyBean {
public void callMethod() {
// Do stuff
}
}
通过调试,我可以看到手动单击按钮时,它会正确触发事件。我还能够验证 JavaScript 是否被正确调用,它“似乎”找到了元素,并为其执行了“.click()”,但我没有在服务器端捕获任何事件。
我似乎正在按照其他类似问题的指示这样做,但我缺乏最终结果。
任何帮助将不胜感激,谢谢。