在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属性中添加一个虚拟动作吗?如果是这样的话?)
答案 0 :(得分:2)
在ajax请求之后调用oncomplete
方法,当你说type="button"
时,不会发出ajax请求。
也就是说,只需删除type="button"
参数,您就不必实施onclick
。
<p:commandButton style="display: none"
id="displayDialog"
oncomplete="cd.show();"/>
但是,你真的需要从JavaScript函数调用按钮吗?如果有另一个组件发出第一个请求,那么您是否只能实现那个组件的oncomplete
方法?
在您的代码中,p:commandButton
根本没有任何操作,那么为什么您是否需要等待操作完成?你在提交表格还是什么?
也许如果你准确地解释了你想做什么,我们可以想出一个更好的方法来做到这一点。