即使onclick为空,在commandButton中使用“oncomplete”?

时间:2012-10-27 16:26:50

标签: java jsf primefaces

在jsf 2项目中,隐藏了一个id为“displayDialog”的commandButton。它由javascript函数触发:

 document.getElementById('displayDialog').click();

问题是,我需要在“oncomplete”阶段执行点击操作,而不是“onclick”(由@BalusC here解释的原因)。

我试着这样做:

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

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

但在两种情况下都没有执行cd.show()。该怎么做?

(我应该在onclick属性中添加一个虚拟动作吗?如果是这样的话?)

1 个答案:

答案 0 :(得分:2)

在ajax请求之后调用oncomplete方法,当你说type="button"时,不会发出ajax请求。

也就是说,只需删除type="button"参数,您就不必实施onclick

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

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

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

也许如果你准确地解释了你想做什么,我们可以想出一个更好的方法来做到这一点。

相关问题