Problemas com máscara de CPF e CNPJ quando o formulário é uma cortina lateral Bom dia a todos! Estou tendo problemas para configurar a máscara de um TEntry quando o formulário é aberto como uma cortina lateral. Não aplica, mas quando tiro da cortina lateral tudo ocorre bem. Este é meu primeiro projeto em Adianti. Estou utilizando a versão 8.0. Segue o código: ...
RA
Problemas com máscara de CPF e CNPJ quando o formulário é uma cortina lateral  
Bom dia a todos!

Estou tendo problemas para configurar a máscara de um TEntry quando o formulário é aberto como uma cortina lateral. Não aplica, mas quando tiro da cortina lateral tudo ocorre bem. Este é meu primeiro projeto em Adianti. Estou utilizando a versão 8.0.
Segue o código:
<?phpclass ColaboradorForm extends TPage{    protected $form;    use Adianti\Base\AdiantiStandardFormTrait;    public function __construct()    {        parent::__construct();        #parent::setTargetContainer('adianti_right_panel');        // Configurações básicas        $this->setDatabase('booking_notes');        $this->setActiveRecord('Pessoa');        $this->setAfterSaveAction(new TAction(['ColaboradorView', 'onReload'], ['register_state' => 'false']));        // Formulário principal        $this->form = new BootstrapFormBuilder('form_Pessoa');        $this->form->setFormTitle('Cadastro de Colaborador');        $this->form->setClientValidation(true);        // Campos do formulário        $id = new TEntry('id');        $id->setEditable(false);        $nome = new TEntry('nome');        $nome->forceUpperCase();        $nome->addValidation('Nome', new TRequiredValidator);        $pessoa_tipo = new TRadioGroup('pessoa_tipo');        $pessoa_tipo->addItems(['F' => 'Física', 'J' => 'Jurídica']);        $pessoa_tipo->setValue('F'); // Define pessoa física como padrão        $pessoa_tipo->setLayout('horizontal'); // Coloca os itens em uma linha horizontal        $cpf_cnpj = new TEntry('cpf_cnpj');        $cpf_cnpj->setId('cpf_cnpj'); // Define um ID único para o campo        $cpf_cnpj->setSize('20%');        $cpf_cnpj->addValidation('CPF/CNPJ', new TRequiredValidator);        $email = new TEntry('email');        $email->forceLowerCase();        $email->addValidation('E-Mail', new TRequiredValidator);        // Adiciona os campos ao formulário        $this->form->addFields([new TLabel('ID')], [$id]);        $this->form->addFields([new TLabel('Nome', 'red')], [$nome]);        $this->form->addFields([new TLabel('Tipo', 'red')], [$pessoa_tipo]);        $this->form->addFields([new TLabel('CPF/CNPJ', 'red')], [$cpf_cnpj]);        $this->form->addFields([new TLabel('E-Mail', 'red')], [$email]);        // Ações do formulário        $this->form->addAction(_t('Save'), new TAction([$this, 'onSave']), 'fa:save green');        $this->form->addActionLink(_t('New'), new TAction([$this, 'onEdit']), 'fa:plus-circle green');        $this->form->addActionLink(_t('Close'), new TAction(['ColaboradorView', 'onReload']), 'fa:times red');              // Script JavaScript para aplicar a máscara        $script = new TElement('script');        $script->type = 'text/javascript';        $script->add("            $(document).ready(function() {                // Função para aplicar a máscara                function applyMask(mask, size) {                    $('#cpf_cnpj').mask(mask).attr('maxlength', size);                }                // Aplica a máscara inicial com base no valor padrão do tipo de pessoa                var initialTipo = $('input[name=\"pessoa_tipo\"]:checked').val();                var initialMask = (initialTipo == 'F') ? '999.999.999-99' : '99.999.999/9999-99';                var initialSize = (initialTipo == 'F') ? 14 : 18;                applyMask(initialMask, initialSize);                // Altera a máscara quando o tipo de pessoa for alterado                $('input[name=\"pessoa_tipo\"]').on('change', function() {                    var tipo = $('input[name=\"pessoa_tipo\"]:checked').val();                    var mask = (tipo == 'F') ? '999.999.999-99' : '99.999.999/9999-99';                    var size = (tipo == 'F') ? 14 : 18;                    // Limpa o campo antes de aplicar a nova máscara                    $('#cpf_cnpj').val('').trigger('change');                    // Aplica a nova máscara                    applyMask(mask, size);                });            });        ");        $this->form->add($script);        // Adiciona o formulário à página        parent::add($this->form);    }  }?>

Alguém já passou por isso? Podem me ajudar?

Att.
Ricardo Almeida

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (0)