2010-12-20 48 views
1

我想驗證富里面的數據:modalPanel;我看到的行爲很奇怪。rich:modalpanel關閉時沒有驗證

我有一個下拉菜單和一個添加按鈕到該下拉列表中,這是我第一次嘗試通過點擊添加按鈕添加數據到下拉列表時,驗證成功,當用戶添加數據第一次嘗試通過打開newAddUserDialog第二次輸入新數據;現在,當驗證失敗時,模態面板會隱藏。即使我刪除用於隱藏模式面板的代碼(a4j:commadButton中的onComplete事件),該窗口只需單擊buttion即可關閉。

 <rich:modalPanel id="newAddUserDialog" autosized="true"> 

    <a4j:outputPanel id="addName_panel" 
     styleClass="largePanel"> 

     <a4j:form> 

      <rich:messages layout="list" showDetail="false" 
       errorClass="validationError" /> 

      <h:panelGrid columns="2" cellpadding="10" cellspacing="10" width="100%"> 

       <h:outputLabel value="Name:" styleClass="label" /> 
       <h:inputText id="nameId" 
        value="#{formBean.name}" maxlength="32" 
        required="true" styleClass="width100"> 
        <f:validateLength minimum="3" maximum="32" /> 
       </h:inputText> 
      </h:panelGrid> 

      <h:panelGrid cellpadding="10" cellspacing="10" width="100%"> 
       <h:panelGroup> 
        <a4j:commandButton id="addBtn" value="Add" 
         styleClass="stdButton" action="doAddUserName" 
         reRender="addName_panel, targetsMaster"> 

         <rich:componentControl for="newAddUserDialog" 
          event="oncomplete" 
          operation="#{(!modelValidationMessages.hasMessages and empty facesContext.maximumSeverity) ? 'hide' : 'focus'}" /> 
        </a4j:commandButton> 

        <a4j:commandButton id="addUser_cancel" value="Cancel" 
         styleClass="stdButton"> 
         <rich:componentControl for="newAddUserDialog" event="onclick" 
          operation="hide" /> 
        </a4j:commandButton> 
       </h:panelGroup> 
      </h:panelGrid> 

     </a4j:form> 

    </a4j:outputPanel> 

</rich:modalPanel> 

可能是這種行爲的原因是什麼?

回答