2015-04-01 67 views
1

我正在使用PrimeFaces 4.0,我試圖使用對話框更改密碼。 我使用密碼組件來完成這項工作它不能在對話框中工作,但是當我不使用Dialog時它工作正常。驗證密碼在p:對話框中不起作用

這裏是我的代碼

<h:form> 
    <p:dialog widgetVar="changePw" resizable="true" appendTo="@(body)" 
       modal="true" closable="false" id="changePw"> 

     <p:panel header="change password"> 

      <p:messages id="messages" showDetail="true" showSummary="false" 
         autoUpdate="true" /> 
      <h:panelGrid columns="2" id="matchGrid"> 
       <h:outputLabel for="pwdNew" value="New: *" /> 
       <p:password id="pwdNew" value="#{passwordBean.newPw}" feedback="true" 
          match="pwdConf" required="true" 
          validatorMessage="Pw does n't matches" 
          requiredMessage="Value required"> 
       </p:password> 

       <p:messages showDetail="true" showSummary="false" autoUpdate="true" 
          for="pwdNew" /> 

       <h:outputLabel for="pwdConf" value="Confirm Password: *" /> 
       <p:password id="pwdConf" value="#{passwordBean.newPwConfirmation}" 
          feedback="true" required="true" 
          validatorMessage="invalid password" 
          requiredMessage="Value required"> 
        <f:validateRegex pattern="[A-Za-z0-9]{8,60}" /> 
       </p:password> 
      </h:panelGrid> 
     </p:panel> 

     <p:separator></p:separator> 
     <p:commandButton value="Save" update="matchGrid" 
         process="@this" ajax="true" 
         actionListener="#{passwordBean.changePw}" 
         styleClass="ui-confirmdialog-yes" 
         oncomplete="changePw.hide();" 
         icon="ui-icon-check" /> 

     <p:commandButton value="Cancel" process="@this" 
         onclick="changePw.hide();" styleClass="ui-confirmdialog-no" 
         icon="ui-icon-close" /> 
    </p:dialog> 

    ... 

感謝任何建議!

回答

2

如果您使用'appendTo =「@(body)」',則需要在對話框中有一個表格,可在PrimeFaces documentation中閱讀。但請確保它在原始的xhtml不嵌套!

另外,按鈕上的process="@this"可以防止其他輸入被提交(這也不會在對話框外工作,所以你很可能沒有那個)。所以刪除,以及

+0

謝謝你的回答我在我的對話框中添加了一個表單,我仍然有同樣的問題。我不理解爲什麼它可以在對話框外正常工作 – 2015-04-01 13:42:46

+0

確保*不*具有嵌套窗體...(檢查您的對話框周圍是否還有打開/關閉窗體標籤*) – Kukeltje 2015-04-01 13:45:50

+0

我刪除了所有嵌套表單並沒有解決問題 – 2015-04-01 14:10:46