Conheça as melhorias da versão 8.0, 8.1, 8.2!
Clique aqui para saber mais
Setvalue TCombo não executa javascript Bom dia, neste codigo reproduzo a falha que estou tendo. O Setvalue definido no TCombo não formata o Tentry cpf_cnpj no carregamento do form. somente funciona depois de alterar o campo manualmente. Qual seria a forma correta para que o form carregue e já formate o campo com o valor aribuido no Setvalue? ...
MP
Setvalue TCombo não executa javascript  
Bom dia, neste codigo reproduzo a falha que estou tendo. O Setvalue definido no TCombo não formata o Tentry cpf_cnpj no carregamento do form. somente funciona depois de alterar o campo manualmente. Qual seria a forma correta para que o form carregue e já formate o campo com o valor aribuido no Setvalue?

 
  1. <?php
  2. /**
  3. * ClientesForm Form
  4. * @author <your name here>
  5. */
  6. class teste extends TPage
  7. {
  8. private $form; // form
  9. /**
  10. * Form constructor
  11. * @param $param Request
  12. */
  13. public function __construct()
  14. {
  15. parent::__construct();
  16. $this->form = new BootstrapFormBuilder;
  17. $this->form->setFormTitle('Clientes');
  18. $this->form->setName('form_clientes');
  19. $this->style = 'width: 100%';
  20. // campos
  21. $id = new TEntry('id');
  22. $tipoPessoa = new TCombo('tipo_pessoa');
  23. $cpf_cnpj = new TEntry('cpf_cnpj');
  24. // labels
  25. $lblTipoPessoa = new TLabel('Tipo Pessoa');
  26. $lblCpfCnpj = new TLabel('CPF/CNPJ');
  27. // config campos
  28. $tipoPessoa->setSize('30%');
  29. $tipoPessoa->id = 'tipo_pessoa';
  30. // validacoes
  31. // combos
  32. $tpPessoas = array(
  33. 'F' => 'Física',
  34. 'J' => 'Jurídica'
  35. );
  36. $tipoPessoa->addItems($tpPessoas);
  37. $tipoPessoa->setValue('F');
  38. $this->form->addFields([$lblTipoPessoa], [$tipoPessoa, $cpf_cnpj]);
  39. // adicionar acoes
  40. //******************************************************************
  41. //script para definir a mascara do cpf/cn
  42. $script = new TElement('script');
  43. $script->type = 'text/javascript';
  44. $javascript = "
  45. $(document).on('change','select[name=\"tipo_pessoa\"]' , function(event){
  46. //alert('Entrou');
  47. $('input[name=\"cpf_cnpj\"]').val('');
  48. $('select[name=\"tipo_pessoa\"] > option:selected').each(function(){
  49. tipoPessoa = $(this).text();
  50. });
  51. if(tipoPessoa.toLowerCase() == 'física') {
  52. $('input[name=\"cpf_cnpj\"]').val('');
  53. $('input[name=\"cpf_cnpj\"]').attr({onkeypress:'return tentry_mask(this,event,\"999.999.999-99\")'});
  54. }
  55. if(tipoPessoa.toLowerCase() == 'jurídica') {
  56. $('input[name=\"cpf_cnpj\"]').val('');
  57. $('input[name=\"cpf_cnpj\"]').attr({onkeypress:'return tentry_mask(this,event,\"99.999.999/9999-99\")'});
  58. }
  59. });";
  60. $script->add($javascript);
  61. //$tableScriptPessoa = new TTable;
  62. //$tableScriptPessoa->addRow()->addCell($script);
  63. //*****************************************************************
  64. // vertical box container
  65. $container = new TVBox;
  66. $container->style = 'width: 90%';
  67. //$container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  68. $container->add($this->form);
  69. $container->add($script);
  70. parent::add($container);
  71. }
  72. }

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 (2)


NR

Você está criando um javascript manual no change do campo. Dessa forma o componente não tem como identificar que há um "gatilho" para executar. Para isso teria que utilizar a exit/change action, do mesmo modo que num post anterior seu.
MP

Nataniel ou alguém que possa me ajudar.

Você poderia me mostrar como fazer isso no onedit? não estou conseguindo entender como chamar a função Javascript neste caso (exit / change). Obrigado!

public function onEdit($param)
{
//TButton::disableField('form_cadastro_pessoas', 'btn_salvar');

try
{
TTransaction::open('db_isis360');
$key = $param['id'];

if ($param['id'] == '')
{
TButton::enableField('form_cadastro_pessoas', 'btn_salvar');
TButton::disableField('form_cadastro_pessoas', 'btn_editar');

TEntry::enableField('form_cadastro_pessoas', 'cpf_cnpj');

TEntry::enableField('form_cadastro_pessoas', 'rg');
TEntry::enableField('form_cadastro_pessoas', 'nomerazao');
TEntry::enableField('form_cadastro_pessoas', 'nomesocialfantasia');
TEntry::enableField('form_cadastro_pessoas', 'emissor');
TCombo::enableField('form_cadastro_pessoas', 'genero');
TEntry::enableField('form_cadastro_pessoas', 'estadocivil');
TEntry::enableField('form_cadastro_pessoas', 'nascimento');
TEntry::enableField('form_cadastro_pessoas', 'grupo');
TEntry::enableField('form_cadastro_pessoas', 'observacao');

TEntry::enableField('form_cadastro_pessoas', 'inscricaoestadual');
TEntry::enableField('form_cadastro_pessoas', 'inscricaomunicipal');
TEntry::enableField('form_cadastro_pessoas', 'ieisento');
TEntry::enableField('form_cadastro_pessoas', 'suframa');
TEntry::enableField('form_cadastro_pessoas', 'dataabertura');
TEntry::enableField('form_cadastro_pessoas', 'naturezajuridica');
TEntry::enableField('form_cadastro_pessoas', 'porte');
TEntry::enableField('form_cadastro_pessoas', 'situacaocnpj');
TEntry::enableField('form_cadastro_pessoas', 'capitalsocial');

TEntry::enableField('form_cadastro_pessoas', 'cep');
TEntry::enableField('form_cadastro_pessoas', 'logradouro');
TEntry::enableField('form_cadastro_pessoas', 'numero');
TEntry::enableField('form_cadastro_pessoas', 'complemento');
TEntry::enableField('form_cadastro_pessoas', 'bairro');
TEntry::enableField('form_cadastro_pessoas', 'cidade');
TEntry::enableField('form_cadastro_pessoas', 'uf');

}
else
{
TButton::disableField('form_cadastro_pessoas', 'btn_salvar');
TButton::enableField('form_cadastro_pessoas', 'btn_editar');
}



$object = new tb_CadastroPessoas($key);
$this->form->setData( $object );
// var_dump($object);
self::onChangetipoPessoa( ['tipoPessoa' => $object->tipoPessoa] ); // modo 1
TForm::sendData('form_cadastro_pessoas',(object)['tipoPessoa'=>$object->tipoPessoa]); // modo 2
TTransaction::close();

}
catch (exception $e)
{
new TMessage('error', $e->getMessage());
TTransaction::rollback();
}
}