Estou com um problemas nos campo onde utilizo o JQuery junto com componentes RichFAces.
Utilizado o rich:panelMenu para altera sem precisa renderiza toda a página, mas quando inicio a aplicação nenhum campo que contém máscara não funciona, mas quando mando atualizar a página volta a funciona normalmente. Já pesquisei vários tópicos no google, mas nada sobre o porque do JQuery não funciona ao start no tomcat e volta a funciona quando atualiza a página. Se alguém sobre o que deve esta ocorrendo e possa me ajuda ficarei grato
Kra, adivinhar é difícil, mas se vc postar o código da página eu posso tentar ajuda-lo.
Segue o codigo home.xhtml
[code]<?xml version="1.0" encoding="ISO-8859-1"?>
Agenda Médica [/code]Quando clico em cadastra novo paciente, renderiza o centro e adiciona o formulario de cadastro.
[code]paciente.xhtml
<ui:composition xmlns=“http://www.w3.org/1999/xhtml”
xmlns:ui=“http://java.sun.com/jsf/facelets”
xmlns:f=“http://java.sun.com/jsf/core”
xmlns:h=“http://java.sun.com/jsf/html”
xmlns:rich=“http://richfaces.org/rich”
xmlns:ajax=“https://ajax4jsf.dev.java.net/ajax”
xmlns:stella=“http://stella.caelum.com.br/faces”
xmlns:p=“http://primefaces.prime.com.tr/ui”
xmlns:a4j=“http://richfaces.org/a4j”>
<h:form id="frm">
<rich:panel>
<f:facet name="header">
<h:outputLabel value="Cadastro de Paciente" />
</f:facet>
<rich:messages infoLabelClass="msgSucesso"
errorLabelClass="msgErroVertical" />
<h:panelGrid columns="2" columnClasses="col-a,col-b">
<h:selectBooleanCheckbox
value="#{pacienteController.paciente.ativo}" />
<h:outputLabel value="Ativo" />
<h:outputLabel value="Nome:" for="nome" />
<h:column>
<h:inputText id="nome" value="#{pacienteController.paciente.nome}"
required="true" requiredMessage="nome obrigatório."
styleClass="edit" style=" width : 432px;" />
<rich:message for="nome" errorClass="msgErroVertical" />
</h:column>
<h:outputLabel for="data" value="Data Nascimento: " />
<h:column>
<h:inputText id="data"
validatorMessage="Data de nascimento com formato inválido!"
converterMessage="Data de nascimento com formato inválido!"
value="#{pacienteController.paciente.dataNascimento}"
styleClass="edit" size="10" style=" width : 77px;" alt="date">
<f:convertDateTime pattern="dd/MM/yyyy" />
<rich:jQuery selector="#data" query="setMask()" timing="onload" />
</h:inputText>
<rich:message for="data" errorClass="msgErroVertical" />
</h:column>
<h:outputLabel value="Mae:" for="mae" />
<h:column>
<h:inputText id="mae"
value="#{pacienteController.paciente.nomeMae}" styleClass="edit"
required="true" requiredMessage="Campo obrigatório"
style=" width : 432px;" />
<rich:message for="mae" errorClass="msgErroVertical" />
</h:column>
<h:outputLabel value="CID:" for="cid" />
<h:inputText id="cid" value="#{pacienteController.paciente.cid}"
styleClass="edit" style=" width : 103px;" />
<h:outputLabel value="Endereco:" for="endereco" />
<h:inputText id="endereco"
value="#{pacienteController.paciente.logradouro}" styleClass="edit"
style=" width : 432px;" />
<h:outputLabel value="Numero:" for="numero" />
<h:inputText id="numero" value="#{pacienteController.paciente.num}"
styleClass="edit" style=" width : 103px;" />
<h:outputLabel value="Telefone:" for="telefone" />
<h:inputText id="telefone"
value="#{pacienteController.paciente.telefone}"
styleClass="edit" style=" width : 152px;">
<rich:jQuery selector="#telefone"
query="setMask({mask:'(99) 9999-9999'})" timing="onload" />
</h:inputText>
<h:outputLabel value="Cidade:" for="cidade" />
<h:inputText id="cidade"
value="#{pacienteController.paciente.cidade}" styleClass="edit"
style=" width : 266px;" />
<h:outputLabel value="Convênio:" for="conv" />
<h:column>
<h:selectOneMenu id="conv"
value="#{pacienteController.paciente.convenio.id}"
styleClass="edit" style=" width : 300px;" required="true"
requiredMessage="Campo obrigatório">
<f:selectItem itemValue="" itemLabel="Selecione..." />
<f:selectItems value="#{pacienteController.comboConvenio}" />
</h:selectOneMenu>
<rich:message for="conv" errorClass="msgErroVertical" />
</h:column>
</h:panelGrid>
<h:commandButton value="Salvar"
action="#{pacienteController.actionIncluirAtualizar}" />
</rich:panel>
</h:form>
</ui:composition>
[/code]
Mas as máscara somente funcionam quando apertou F5 para atualizar a pagina.
Retire a tag <f:view>, vc não devia usa-la quando o framework de templates usado é Facelets. E coloque a a4j:jQuery dentro do form onde vc vai usa-lo.
Desculpe, erro de digitação. Eu queria dizer p/ vc mover a tag a4j:loadScript p/ dentro do <h:form>.
Conseguir fazer funciona o jQuery ao inicia a aplicação.
Valeu pela força.