如何使用javascript/JQuery调用jsf页面上的隐藏按钮
How to call hidden button on a jsf page with javascript/JQuery
我发现这个问题已经以不同的形式被问了好几次了,但我仍然需要一些帮助,因为我无法像示例中那样得到这个问题。
我有一个带有PrimeFaces的JSF 2页面,它包含以下隐藏按钮,我需要在pageUnLoad上从javascript调用该按钮。
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()",但我在服务器端没有捕捉到任何事件。
我似乎是按照其他类似问题的指示来做的,但我缺乏最终结果。
任何帮助都将不胜感激,谢谢。
隐藏按钮可以使用类似的JavaScript点击
document.getElementById('doStuff').click();
但是,在命名容器时应该小心。隐藏按钮必须由<h:form>
标记包围,并且其prependid
属性应设置为false
。否则,您可以访问id为formId:doStuff
的按钮。
另请参见
JSF2/PrimeFaces 中的命名容器
无法通过JavaScript 点击隐藏按钮
从javascript调用服务器端方法的方法要简单得多。定义一个p:remoteCommand
,Primefaces将创建一个JavaScript函数,您可以从JavaScript函数内部调用该函数。
使用以下内容定义远程命令:
<p:remoteCommand name="doStuff" action="#{myBean.callMethod()}"/>
然后在beforeunload
上调用bean方法,只需使用:
$(window).bind('beforeunload', doStuff);
相关文章:
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- PHP Javascript显示/隐藏按钮不工作
- 如何隐藏按钮单击事件上的占位符
- 我的表单上的SpringWebFlow2中的每个转换都需要隐藏按钮吗
- 使用ng-hide根据条件显示/隐藏按钮
- 另一种显示和隐藏按钮的方式
- PHP If Else-隐藏按钮
- 如何显示/隐藏按钮
- jQuery 隐藏按钮,如果它们不包含文本
- 如何检测是否在主页上隐藏按钮
- 单击时隐藏按钮
- 在可丢弃的::javascript上显示隐藏按钮
- 想要使用onclick显示隐藏按钮
- 使用jQuery在ruby中显示/隐藏按钮
- 如果未输入URL,则隐藏按钮
- 当按下第二个按钮时如何隐藏按钮,以及当我点击页面的空白区域时如何使其出现
- 如何使用onmouseover和onmouseout在鼠标经过按钮时隐藏和取消隐藏按钮
- 使用运行时创建的链接来触发ASP.Net中隐藏按钮的单击处理程序
- 如何在ajax响应中隐藏按钮
- 切换时隐藏按钮