Java 使用;“未完成”;在commandButton中,即使onclick为空?

Java 使用;“未完成”;在commandButton中,即使onclick为空?,java,jsf,primefaces,Java,Jsf,Primefaces,在JSF2项目中,id为“displayDialog”的commandButton是隐藏的。它由javascript函数触发: document.getElementById('displayDialog').click(); 问题是,我需要在“oncomplete”阶段执行单击操作,而不是“onclick”(原因由@BalusC解释) 我试着做: <p:commandButton style="display: none" id="displayDialog" type="b

在JSF2项目中,id为“displayDialog”的commandButton是隐藏的。它由javascript函数触发:

 document.getElementById('displayDialog').click();
问题是,我需要在“oncomplete”阶段执行单击操作,而不是“onclick”(原因由@BalusC解释)

我试着做:

    <p:commandButton style="display: none" id="displayDialog" type="button" onclick="" oncomplete="cd.show();"/>


但在这两种情况下,都不会执行cd.show()操作。如何做到这一点


(我是否应该在onclick属性中添加一个伪操作?如果是,是哪一个?

在ajax请求之后调用
oncomplete
方法,并且当您说
type=“button”
时,不会发出ajax请求

也就是说,只需删除
type=“button”
参数,就不必实现
onclick

<p:commandButton style="display: none" 
                 id="displayDialog" 
                 oncomplete="cd.show();"/>


但是,您真的需要从JavaScript函数调用该按钮吗?如果有另一个组件发出第一个请求,您不能实现该组件的
oncomplete
方法吗

在您的代码中,
p:commandButton
根本没有任何操作,那么您为什么需要等待操作完成?你是在提交表格还是什么


如果您准确地解释了您想要做什么,我们可以想出更好的方法。

执行ajax请求后将调用
oncomplete
方法。在这两个示例中,没有执行ajax请求,因此您的
oncomplete
方法将永远不会运行。请注意,第二个示例是您所能做的最糟糕的事情,因为该按钮永远不会提交请求。thx!我可以在onclick方法中放入什么样的伪/假/无效ajax请求,以便在之后触发oncomplete方法?甚至不要编写
onclick
方法。只需将
oncomplete
。在a4j库中尝试。
<p:commandButton style="display: none" 
                 id="displayDialog" 
                 oncomplete="cd.show();"/>