2014-04-19 77 views
0

我有一個確認消息框,當用戶點擊保存按鈕時出現,它只是簡單地要求他們確認他們想要保存,但即使全部彈出驗證失敗,有沒有辦法,只顯示消息框,如果所有的驗證是成功的如何停止彈出消息確認驗證是否失敗

<p> 
     <p:commandButton value="#{bundle.buttonSaveMark}" icon ="ui-icon-disk" update="displayMark :growl" oncomplete="PF('dlg').show()" /> 
    </p> 
    <p:dialog header="Confirm Mark" widgetVar="dlg" showEffect="fold" hideEffect="fold"> 
     <h:panelGrid id="displayMark" columns="2" cellpadding="5"> 
      <h:outputText value="Mark to be submitted: " /> 
      <h:outputText value="#{selectedValue}"/> 
      <p:commandButton id="save" 
          value="#{bundle.buttonSave}" 
          actionListener ="#{markingBean.editMark}" 
          update="Navigation :growl" 
          icon="ui-icon-disk" 
          oncomplete="PF('nav').show()"/> 
     </h:panelGrid> 
    </p:dialog> 

    <p:dialog header="Navigation" widgetVar="nav" showEffect="fold" hideEffect="fold"> 
     <h:panelGrid id="Navigation" columns="2" cellpadding="5"> 
      <h:outputText value="Return to this project's marking page: " /> 
      <p:button id="go" 
         value="#{bundle.buttonProjMark}" 
         outcome ="/lecturer/marking/marking-index.xhtml?edit_id=#{markingBean.markToEdit.id}" 
         icon="ui-icon-clipboard"/> 
      <h:outputText value="Return to staff homepage: " /> 
      <p:button id="staffHome" 
         value="#{bundle.buttonStaffHome}" 
         outcome ="/index" 
         icon="ui-icon-home"/> 
     </h:panelGrid> 
    </p:dialog> 

是按鈕,然後確認

回答

1

您可以

更新從Java代碼THA導航對話框
RequestContext.getCurrentInstance().update("Navigation"); 

而且從Java代碼添加callBackParam:

RequestContext.getCurrentInstance().addCallbackParam("showDialog",true); 

上面的代碼添加到您的markingBean.editMark行動。如果驗證失敗,您的操作將不會被調用,所以callbackParam將不會被添加,這樣對話框將不會出現。

在客戶端應該創建其處理請求完成一個js函數:

function handle(args) { 
    if (data != null && data.showDialog) { 
     PF('nav').show() 
    } 
} 

,按鈕上:

oncomplete="handle(args);" 
+0

如果此解決方案是適合你的,不是請接受anwser 。所以其他人會知道這是一個封閉的問題。謝謝。 – Tushee