RB
Mudar máscara de componente
Fechado
Como posso mudar dinamicamente a mascara de um componente através do onChangeAction?
Da uma olhada aqui veja se ajuda
www.adianti.com.br/forum/pt/view_661?adicionando-validacoes-em-formu
Mas tipo eu gostaria de alterar a mascara de um TEntry, no momento em que é alterado um TRadioGroup...pelo que estudei sobre a framework, isto é feito através do onChangeAction. O problema é que não consigo fazer está função, pois dá muitos erros. Não poderia usar simplesmente setMask? Com o validador parece ser útil, mas não para o meu problema...teria outra sugestão?
Você tentou fazer a mudança da máscara dentro da função OnChangeAction do TRadio... ?
Ops, eu errei... não é TCombo, é um TRadio que você quer usar para selecionar... mas não tem problema, qualquer um pode ser usado para selecionar diferentes opções. O que importa é tratar os parâmetros na onChangeAction para escolher a máscara correta.
Seria melhor se você postasse seu código pra gente ver o que está errado!
Rogers,
Acredito que você esteja fazendo algo como cpf/cnpj, e um radio de tipo para escolher.
O setMask() não vai funcionar, pois ele só define a máscara, que é executada no show() do componente.
Tenho duas sugestões:
1) Gerar um Javascript no evento de troca de valores que altera a propriedade onKeyPress do campo:
onKeyPress="return tentry_mask(this,event,'{$this->mask}')
Para isso, você pode (a partir da versão 2.0), gerar um script que usa seletor jQuery para atribuir a função tentry_mask() novamente para o campo:
TScript::create(' seu javascript aqui ');
2) Separar em dois campos, cada um com sua máscara, e usar o evento de troca de valor para bloquear um e desbloquear outro, como aqui:
www.adianti.com.br/framework_files/tutor/index.php?class=FormEnableD
Atenciosamente,
Pablo
Interessante as sugestões do Pablo.
Eu particularmente prefiro a primeira que é usar Javascript para alterar conforme precisar, mantendo apenas um campo.