我发现这个问题已经以不同的形式被问了好几次,但我仍然需要一些帮助,因为无法像示例中那样得到这个。
我有一个带有 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();
}
}
托管Bean具有:
@ManagedBean(name = "myBean")
@RequestScoped
public class MyBean {
public void callMethod() {
// Do stuff
}
}
通过调试我可以看到,当手动单击按钮时,它会正确触发事件。 我还能够验证 JavaScript 是否被正确调用,它“似乎”找到了该元素,并为其执行“.click()”,但我没有在服务器端捕获任何事件。
我似乎正在按照其他类似问题的指示这样做,但我缺少最终结果。
如有任何帮助,我们将不胜感激,谢谢。
最佳答案
隐藏按钮可以通过使用JavaScript来点击
document.getElementById('doStuff').click();
但是,命名容器时应该小心。隐藏按钮必须用 <h:form>
括起来标签和prependid
它的属性应该设置false
。否则,您可以访问 id formId:doStuff
的按钮.
另请参阅
关于javascript - 如何使用 javascript/JQuery 调用 jsf 页面上的隐藏按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17834491/