Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Adicionar e remover validação de um campo dinamicamente Boa tarde a todos, Preciso que o campo "Nome Fantasia" seja obrigatório apenas quando a pessoa for do tipo "Jurídica", que é selecionada em um combo. Li alguns posts aqui no forum onde é possível alterar o tipo de validação, mas não encontrei como adicionar ou remover validação dinamicamente. Alguem saberia como fazer isso? Obrigado!...
WS
Adicionar e remover validação de um campo dinamicamente  
Boa tarde a todos,

Preciso que o campo "Nome Fantasia" seja obrigatório apenas quando a pessoa for do tipo "Jurídica", que é selecionada em um combo. Li alguns posts aqui no forum onde é possível alterar o tipo de validação, mas não encontrei como adicionar ou remover validação dinamicamente.

Alguem saberia como fazer isso?

Obrigado!

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (4)


PN

Salve William,

Vc pode fazer assim:

No onChange do campo que pega o CPF ou CNPJ, vc chama uma função, como a abaixo:

Obs.: É lógico que antes de pegar o CPF ou CNPJ, vc tem que pegar o tipo !!!

public static function onValidaCPFCNPJ($param)
{
try
{
if ($param['cpfcnpj'])
{
if ($param['tipo'] == 'F')
{
$validator = new TCPFValidator;
$validator->validate('CPF', $param['cpfcnpj']);
}
else if($param['tipo'] == 'J')
{
$validator = new TCNPJValidator;
$validator->validate('CNPJ', $param['cpfcnpj']);
}
}
}
catch (Exception $e)
{
TToast::show('info', $e->getMessage(), 'top center', 'fa fa-info' );
}
}

Espero que ajude,

Abs,

Paulo Nobre
PN

William,

Como vc quer um outro campo, vc pode adaptar a ideia. O importante é ver o uso da classe de validação de forma dinâmica, sacou ?

Abs,

Paulo Nobre
WS

oi Paulo Roberto Nobre,

me desculpe pela demora, mas tive que resolver outro assunto e só agora pude ler seu post.
Não sei se peguei sua idéia, mas o que preciso é fazer um campo ser obrigatório quando for tipo = 'J' e quando for tipo = 'F' que não seja obrigatório.

A questão é: já tenho um mecanismo de alterar algumas propriedades na tela conforme o tipo. Mas uma vez que executo o comando quando o tipo é 'J'
  1. <?php
  2.             $nome_fantasia->addValidation('Nome Fantasia', new TRequiredValidator);
  3. ?>


ao alternar para tipo 'F', não consigo remover a obrigatoriedade.

Não sei se ficou bem explicado, mas seria essa minha dúvida.

Muito obrigado!

William
WS

Alguem tem idéia ?