2015-10-05 62 views
0

我有一個對話框,當頁面重新加載並要求登錄時打開。這是完美的工作,直到我創建另一個對話框,當我點擊一個按鈕時打開。兩個人都有不同的名字,我打電話是對的!我真的不知道什麼是錯的..爲什麼我的對話框不起作用?

現在,當我重新加載頁面時,它顯示我的登錄對話框,我把正確的登錄名和密碼,但它拒絕..但如果我刪除其他對話框,並做同樣的薄,它的作品。

我的代碼:

<body onload="PF('dlgLogin').show();"> 
     <h:form name=""> 
      <p:growl id="growl" sticky="true" showDetail="true" life="2000" /> 

      <p:dialog header="Login" widgetVar="dlgLogin" modal="true" closable="false" resizable="false"> 
       <h:panelGrid columns="2" cellpadding="5"> 
        <h:outputLabel for="login" value="Username:" /> 
        <p:inputText id="login" value="#{loginView.login}" required="true" label="Login" /> 
        <h:outputLabel for="password" value="Password:" /> 
        <p:password id="password" value="#{loginView.senha}" required="true" label="Password" /> 
        <f:facet name="footer"> 
         <p:commandButton value="Login" update="growl" action="#{loginView.login}" 
             oncomplete="handleLoginRequest(xhr, status, args)" /> 
        </f:facet> 
       </h:panelGrid> 
      </p:dialog> 

      <p:dialog header="Nova classificação" widgetVar="dlgClassificacao" modal="true" resizable="false"> 
       <h:panelGrid columns="2" cellpadding="5"> 
        <h:outputLabel for="nome" value="Nome:" /> 
        <p:inputText id="nome" value="#{adminView.classNome}" required="true" label="Nome" /> 
        <h:outputLabel for="valor" value="Valor:" /> 
        <p:inputText id="valor" value="#{adminView.classPreco}" required="true" label="Valor" /> 
       </h:panelGrid> 
       <f:facet name="footerAdicionar"> 
        <p:commandButton value="Adicionar" action="#{adminView.novaClassificacao}" /> 
       </f:facet> 
      </p:dialog> 

      <p:layout> 
       <p:layoutUnit position="center"> 

        <p:dataTable id="classificacoes" selection="#{adminView.selectedClassificacao}" var="classificacao" value="#{adminView.classificacoes}" style="margin-bottom:20px"> 

         <p:ajax event="rowSelect" listener="#{adminView.onRowSelect}"/> 

         <p:column> 
          <f:facet name="header"> 
           <h:outputText value="Nome" /> 
          </f:facet> 
          <h:outputText value="#{classificacao.nome}" /> 
         </p:column> 

         <p:column> 
          <f:facet name="header"> 
           <h:outputText value="Valor" /> 
          </f:facet> 
          <h:outputText value="#{classificacao.preco}" /> 
         </p:column> 
        </p:dataTable> 
        <f:facet name="footer"> 
         <p:commandButton title="Novo" icon="ui-icon-document" onclick="PF('dlgClassificacao').show();" type="button"/> 
         <p:commandButton title="Editar" icon="ui-icon-pencil" /> 
         <p:commandButton title="Deletar" icon="ui-icon-trash" update="classificacoes" actionListener="#{adminView.excluirClassificacao}"/> 
        </f:facet> 

       </p:layoutUnit> 
      </p:layout> 

     </h:form> 
     <script type="text/javascript"> 
      function handleLoginRequest(xhr, status, args) { 
       if(args.validationFailed || !args.loggedIn) { 
        PF('dlg').jq.effect("shake", {times:5}, 100); 
       } 
       else { 
        PF('dlg').hide(); 
        $('#loginLink').fadeOut(); 
       } 
      } 
     </script> 
    </body> 
+0

在控制檯中的任何錯誤? 'F12' – Geinmachi

+2

@Geinmachi:它只是神形式反模式。 Gustavo在驗證錯誤消息中更加關注字段名稱。 – BalusC

+0

沒有錯誤。 @Geinmachi –

回答

0

的問題是,您要發送的所有形式的數據,當您按下登錄按鈕。然後,您將獲得消息,指示您尚未(自然地)鍵入NomeValor字段的任何數據。

您可以通過添加一個id屬性到您的登錄對話框,並以表單並且還加入了進程屬性到您的登錄按鈕修復:

<p:commandButton process=":yourForm:dlgLogin" value="Login" 
    update="growl" action="#{loginView.login}" />