Primefaces + Jquery = perdendo mascara

6 respostas
igoorgalvao

Estou com o seguinte problema, eu coloco a mascara no campo com o jquery, pois preciso que ele seja somente número.

jQuery(document).ready(function() {
			$("#numFistel").numeric();
		});

Isso funciona legal até eu dar um update no formulario com o atributo update do pricefaces(update=“form”).

<p:commandLink process="panelProcesso" update="form" action="#{manterPreCadastroBean.validarProtocolo}" rendered="#!manterPreCadastroBean.mostrarCampoProtocolo}">
	<h:graphicImage name="icone-pesquisar.png" library="design/imagem" />
</p:commandLink>

Depois de clicar no botão acima, o campo perde a mascara e a function do jquery não é mais chamada.

Alguem pode me ajudar?

6 Respostas

gilmaslima

Tente fazer assim:

jQuery(document).ready(function() {
       $("#numFistel").numeric();
       
        $("#numFistel").click(function() {
                 $("#numFistel").numeric();
        });

});
igoorgalvao
gilmaslima:
Tente fazer assim:
jQuery(document).ready(function() {
       $("#numFistel").numeric();
       
        $("#numFistel").click(function() {
                 $("#numFistel").numeric();
        });

});

Não resolveu. Depois do update do primefaces, não chama a function do jquery.

leonardobhbr

ao invés de colocar no ready a função crie uma função e no seu commandlink no evento oncomplete chame ela.

Perde a mascara por ser uma requisição ajax por isso que tem que chamar ela novamente a cada requisição

igoorgalvao

leonardobhbr:
ao invés de colocar no ready a função crie uma função e no seu commandlink no evento oncomplete chame ela.

Perde a mascara por ser uma requisição ajax por isso que tem que chamar ela novamente a cada requisição

A sua solução ajuda a resolver o problema. Agradeço.
Gostaria de ver se alguem consegue outro forma de resolver isso, pq assim eu preciso colocar isso em todos os button que atualizam componentes com mascara.

leonardobhbr

Ja apanhei muito com isso.
A outra solução que eu encontrei foi adicionar a validação no key de cada input.

igoorgalvao

Prezados amigos,

Depois de muito tempo com esse problema, achei uma solução.

http://showcase.omnifaces.org/components/onloadScript

Igor Galvão

Criado 27 de janeiro de 2012
Ultima resposta 7 de ago. de 2013
Respostas 6
Participantes 3