Tenho um arquivo validar(CPF), que está no repositório de scripts em java script.
Todos os scripts desse arquivo são visto em todas as páginas da aplicação.
Minha dúvida é: como chamar essa função validar(CPF) na página jsp, que contém várias tags library.
To usando:
<s:span><h:outputLabel for=“CPF” value=“CPF”/><span class=“required”>*</span></s:span>
<s:decorate id=“cpfd”>
<h:inputText id=“CPF” maxlength=“255” size=“20” value="#{form.Person.identifier}" required=“true”/> <h:commandLink onclick = “validaCPF(CPF)”/>
</s:decorate>
Me ajudem de puder, ficarei muito grata!
Obrigado.
usei
<h:inputText id=“CPF” maxlength=“255” size=“20” value="#{form.Person.identifier}" required=“true” onblur=“validaCPF(this.cpfd)”/>
apareçe a janela de alerta que tem que apareçer, mas ele só mostra a mensagem de cpf inválido, mesmo sendo digitado um cpf válido.
se vocs tiverem um script melhor, me ajudem aí.
abços
Uma prática boa é separar completamente javascript do jsp, já que são duas linguagens diferentes e facilita no caso de ‘debuggar’ a aplicação.
Crie um arquivo .js para essa sua página e inclua ele no final do body. Dentro desse arquivo você pode adicionar o evento de validação. Lembrando claro de importar também a biblioteca com as funções de validação.
Melhor ainda seria encapsular esse evento em uma biblioteca para tratamentos de eventos, evitando assim incompatibilidades entre browsers e centralizando o próprio tratamento.
Isso depende muito.
Do modo que esta sendo feito, setando direto no html o onclick, ao adicionar um .js no fim do body, pode acontecer do html renderizar antes desse aquivo js e na hora de disparar alguma funçao antes do js estar carregado, o browser nao ira encontrar essa funcao.
O contrario tambem pode acontecer, pois se voce por o js no começo da pagina e disparar uma funçao antes do html ter sido renderizado e essa funçao acesse alguma propriedade nao carregada da pagina, nao ira funcionar. o que nao eh esse o caso pois a funçao soh vai ser disparada depois do html ter renderizado…