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!

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