Máscara Dinâmica Telefone

2 respostas
G

Olá,

Estou precisando alterar a máscara de um campo de telefone a partir do tipo de telefone, celular, que, no caso, é um select, e, do DDD (11), que é um input, caso estas duas condições sejam verdadeiras, a máscara do campo deve ficar 99999-9999, caso contrário, mantém a máscara setada antes… Sim, é a maldita resolução 553 da ANATEL.

O problema é que eu não tenho muito conhecimento em front, e, não faço idéia de como alterar a máscara do campo dinamicamente.

Até achei um modo de alterar isto de forma dinâmica, mas, não consegui adaptar à minha necessidade, o link é este http://jsbin.com/eduqi5

A página é JSP, mas, isso não influencia em nada, acredito eu.

Obrigado.

2 Respostas

Bertan

Ola,

Não tenho certeza se irá funcionar, porém já é uma idéia:

  • Utilizar JSF com a TAG f:ajax, como no exemplo a seguir:
<h:commandButton action="#{mb.atualizarMensagem}" value="Atualizar Grupo">
<f:ajax render="grupo" />
</h:commandButton>

<h:panelGroup id="grupo">
<h:outputText id="msg3" value="#{mb.mensagem}" />
<h:outputText id="msg4" value="#{mb.mensagem}" />
</h:panelGroup>

Com isto você pode atualizar o campo na tela, e pode fazer com que dependendo da seleção, mude a mascara do campo.

  • Não lembro se existe, mas se tiver o OnChangeSelection ou algo parecido, para quando alterar a seleção no combo, disparar um método que já altere a máscara do campo a seguir; (Pelo menos é isso que você quer fazer, certo?)

  • Utilizar Conversores do JSF para isto, porém não sei como se pode fazer dinamicamente :frowning:

Boa sorte,
Will

G

Will,

Esta solução até serve, porém, eu preciso fazer esta troca de máscaras quando o campo de DDD perder o foco, não pode ser na seleção da combo, por isso não consegui fazer o exemplo do link que deixei antes funcionar.

E, o projeto está desenvolvido em Struts (não falei antes porque achei que apenas com JS ou JQuery poderia ser resolvido), então, acredito que a solução do jsf não resolve.

Desculpe pela falta de informação.

Obrigado.

Criado 8 de março de 2012
Ultima resposta 8 de mar. de 2012
Respostas 2
Participantes 2