我正在使用primefaces(6.0)向导,并希望在显示标签后调用javascript代码。
<p:wizard flowListener="#{bb.onFlowProcess}" onnext="PF('waitDlg').show()"> ...
我需要的是oncomplete="PF('waitDlg').hide()"
我可以在bb.onFlowProcess
结束时调用它,但是,如果出现验证错误,则不会调用bb.onFlowProcess
并且对话框不会隐藏。
是否有解决方案或解决方法?
答案 0 :(得分:0)
我能够通过以下操作实现它(为清晰起见省略了一些代码):
删除了导航栏
<p:wizard flowListener="#{bb.onFlowProcess}" widgetVar="wizard" onnext="PF('waitDlg').show()" showNavBar="false>
添加了导航命令按钮
<p:commandButton styleClass="nextBtn" value="Next" onstart="PF('wizard').next();" oncomplete="hideOnValidationFail(args, 'waitDlg')"/>
保存代码以在
onFlowProcess
结束时执行js
try {
// code
} finally {
executeJavaScript("PF('waitDlg').hide()");
}
如果想要显示/隐藏导航按钮,我通过使用一点点jquery来实现它
<p:tab id="tab1" title="Tab 1">
<script type="text/javascript">
$(document).ready(function() {
$(".backBtn").hide();
$(".nextBtn").show();
$(".finishBtn").hide();
});
</script>
// tab code
</p:tab>
<p:tab id="tab2" title="Tab 2">
<script type="text/javascript">
$(document).ready(function() {
$(".backBtn").show();
$(".nextBtn").show();
$(".finishBtn").hide();
});
</script>
// tab code
</p:tab>