2017-06-13 48 views
0

我正在使用primefaces(6.0)嚮導,並希望在顯示選項卡時調用JavaScript代碼。onFlowProcess/onnext後的Primefaces嚮導事件

<p:wizard flowListener="#{bb.onFlowProcess}" onnext="PF('waitDlg').show()"> ... 

我需要的是像oncomplete="PF('waitDlg').hide()"

我能夠在bb.onFlowProcess末來調用它,但是,當有驗證錯誤,bb.onFlowProcess不會被調用,對話框將不隱瞞。

有沒有解決方法或解決方法?

回答

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

try { 
    // code 
} finally { 
    executeJavaScript("PF('waitDlg').hide()"); 
} 

執行JS在一個想要顯示/隱藏NAV按鈕的情況下,我通過使用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>