Boa noite caros amigos, tenho uma aplicação em JSF 2, utilizo o Prime Faces… Estah dando conflito entre o inputText do prime ou da biblioteca h com o JQuery quando tento validar um campo qto ao seu preenchimento (“required:true”):
<p:inputText id="txtNome" value="#{FuncionarioBean.funcionario.nmFuncionario}"
maxlength="50"
required="true"
requiredMessage="Informe o nome do Funcionario!"/>
<p:message for="txtNome" />
Desta forma que estah codificado o comandButton localizado no final do formulário para realizar o cadastro não funciona.
Simplesmente o submit não acontece.
Se eu manter a mesma lógica e colocar este botão noutro Formulário ele funciona mas a validação também não procede.
Código completo:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:mj="http://mojarra.dev.java.net/mojarra_ext">
<h:head>
<h:outputScript library="javascript" name="jquery.js" target="head" />
<h:outputScript library="javascript"
name="jquery.maskedinput-1.1.4.pack.js" target="head" />
<h:outputScript library="javascript" name="jquery.validate.js"
target="head" />
<h:outputScript library="javascript" name="funcoes.js" target="head" />
<script language="JavaScript">
var $j = jQuery.noConflict();
$j(document).ready(function() {
$j("#txtTelefone").mask("99-9999-9999");
$j("#txtCpf").mask("999.999.999-99");
$j("#formCadastroFuncionario").validate({
// Define as regras
rules : {
txtCpf : {
cpf : true
},
txtEmail : {
email : true
},
txtConfirmaSenha : {
equalTo : "#txtSenha",
required : true
},
txtSenha : {
padraoSenha : true
}
},
// Define as mensagens de erro para cada regra
messages : {
txtCpf : {
cpf : "CPF invalido"
},
txtEmail : {
email : "Email invalido"
},
txtConfirmaSenha : {
equalTo : "A senha não foi confirmada"
}
}
// fim mensagens
});//fim validate
});//fim jquery
</script>
</h:head>
<h:body>
<div id="form">
<h:form prependId="false">
<h:commandLink value="Voltar" action="#{FuncionarioBean.doVoltar}"
id="cmdVoltar" />
</h:form>
<h:form id="formCadastroFuncionario" prependId="false">
<p:fieldset legend="Cadastro de Usuário">
<mj:focus for="Setor:*" />
<h:panelGrid columns="3" cellpadding="1" border="0" width="40%">
<h:outputLabel id="lblSetor" value="Setor:*"/>
<h:selectOneMenu
value="#{FuncionarioBean.funcionario.estruturaOrganizacional.idUnidade}"
id="txtSetor">
<f:selectItems value="#{FuncionarioBean.listaSetores}" var="lista"
itemLabel="#{lista.nmSglUnidade}" itemValue="#{lista.idUnidade}" />
</h:selectOneMenu>
<h:message for="txtSetor" styleClass="lbCampos" />
<h:outputLabel id="lblTipoUsuario" value="Tipo Usuário:*"/>
<h:selectOneMenu value="#{FuncionarioBean.tipoUsuario}"
id="txtTipoUsuario">
<f:selectItem itemValue="A" itemLabel="Administrador" />
<f:selectItem itemValue="D" itemLabel="Diretor" />
<f:selectItem itemValue="G" itemLabel="Gerente de Divisão" />
<f:selectItem itemValue="F" itemLabel="Funcionário" />
<f:selectItem itemValue="E" itemLabel="Estagiário" />
</h:selectOneMenu>
<h:message for="txtTipoUsuario" />
<h:outputLabel id="lblNome" value="Nome:*" />
<p:inputText id="txtNome"
value="#{FuncionarioBean.funcionario.nmFuncionario}"
maxlength="50"
required="true"
requiredMessage="Informe o nome do Funcionario!"/>
<p:message for="txtNome" />
<h:outputLabel id="lblCpf" value="CPF:*" />
<h:inputText id="txtCpf"
value="#{FuncionarioBean.funcionario.nrCpf}" />
<p:message for="txtCpf" />
<h:outputLabel id="lbltelefone" value="Telefone:*"/>
<h:inputText id="txtTelefone"
value="#{FuncionarioBean.funcionario.nmFone}" />
<h:message for="txtTelefone"/>
<h:outputLabel id="lblCodigoCracha" value="Código Carchá:*" />
<h:inputText id="txtCodigoCracha"
value="#{FuncionarioBean.funcionario.idCracha}" maxlength="20" />
<h:message for="txtCodigoCracha"/>
<h:outputLabel id="lblEmail" value="email:*"/>
<h:inputText id="txtEmail" value="#{FuncionarioBean.funcionario.nmEmail}" maxlength="30"/>
<h:message for="txtEmail" styleClass="lbCampos" />
<h:outputLabel id="lblMatricula" value="matrícula:*"/>
<h:inputText id="txtMatricula"
value="#{FuncionarioBean.funcionario.nmMatFuncionario}"
maxlength="20" />
<h:message for="txtMatricula" styleClass="lbCampos" />
<h:outputLabel id="lblLogin" value="Usuário:*"/>
<h:inputText id="txtLogin" value="#{FuncionarioBean.login}"
maxlength="10">
<f:ajax execute="txtLogin" render="txtNmLogin" />
</h:inputText>
<h:outputLabel></h:outputLabel>
<h:outputLabel></h:outputLabel>
<h:outputText id="txtNmLogin" class="error"
value="#{FuncionarioBean.verificaDisponibilidade}" />
<h:message for="lblLogin" styleClass="lbCampos" />
<h:outputLabel id="lblSenha" value="Senha:*"/>
<h:inputSecret id="txtSenha" value="#{FuncionarioBean.senha}"
maxlength="20"/>
<h:message for="txtSenha" styleClass="lbCampos" />
<h:outputLabel id="lblConfirmaSenha" value="Confirmar Senha:*" />
<h:inputSecret id="txtConfirmaSenha" maxlength="20" />
<h:message for="txtConfirmaSenha" styleClass="lbCampos" />
<p:commandButton type="submit" value="Cadastrar" action="#{FuncionarioBean.doEnviar}" />
<p:commandButton type="reset" value="Limpar" action="#{FuncionarioBean.limparCampos}" />
<h:outputLabel value="#{FuncionarioBean.msg}"
rendered="#{FuncionarioBean.exibeMensagem}" />
</h:panelGrid>
</p:fieldset>
</h:form>
</div>
</h:body>
</html>
Alguém poderia me ajudar?
Um abraço e obrigado pela atenção…