Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Mudar máscara de componente Como posso mudar dinamicamente a mascara de um componente através do onChangeAction?...
RB
Mudar máscara de componente  
Fechado
Como posso mudar dinamicamente a mascara de um componente através do onChangeAction?

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (6)


FC

Da uma olhada aqui veja se ajuda
www.adianti.com.br/forum/pt/view_661?adicionando-validacoes-em-formu
RB

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?
WG

Você tentou fazer a mudança da máscara dentro da função OnChangeAction do TRadio... ?

  1. <?php
  2. $sua_combo->setChangeAction(new TAction(array($this'onChangeAction'))); 
  3. ...
  4. function onChangeAction ($param
  5.     $suaEntry->setMask('NOVA MASCARA');
  6. ?>
WG

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!
PD

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
WG

Interessante as sugestões do Pablo.

Eu particularmente prefiro a primeira que é usar Javascript para alterar conforme precisar, mantendo apenas um campo.