2015-10-05 39 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}" />