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!
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!
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
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
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'
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
Alguem tem idéia ?