Mascara para CPF/CNPJ Salve, pessoal. Peguei a idéia do http://www.adianti.com.br/forum/pt/view_582?alterar-atributo-de-campo-em-tempo-de-execucao: $pessoa = new TCombo('pessoa'); $pessoa_tipo = array(); $pessoa_tipo['F'] = 'Física'; $pessoa_tipo['J'] = 'Jurídica'; $pessoa->addItems($pessoa_tipo); $this->form->addQuickField('Pessoa:', $pessoa, 250 ); $script = new TElement('script'); $script->...
CS
Mascara para CPF/CNPJ  
Salve, pessoal. Peguei a idéia do www.adianti.com.br/forum/pt/view_582?alterar-atributo-de-campo-em-te

$pessoa = new TCombo('pessoa');

$pessoa_tipo = array();
$pessoa_tipo['F'] = 'Física';
$pessoa_tipo['J'] = 'Jurídica';
$pessoa->addItems($pessoa_tipo);

$this->form->addQuickField('Pessoa:', $pessoa, 250 );


$script = new TElement('script');
$script->type = 'text/javascript';
$javascript ="
// personaliza os campos de acordo com o tipo de pessoa
$('select[name="pessoa"]').change(function(event){
var tipoPessoa
$('select[name="pessoa"] > option:selected').each(function(){
tipoPessoa = $(this).text();
});
if(tipoPessoa == 'F') {
$('input[name="cpf_cnpj"]').val('');
$('input[name="cpf_cnpj"]').attr({onkeypress:'return entryMask(this,event,"999.999.999-99")'});
}
if(tipoPessoa == 'J') {
$('input[name="cpf_cnpj"]').val('');
$('input[name="cpf_cnpj"]').attr({onkeypress:'return entryMask(this,event,"99.999.999/9999-99")'});
}
});
";

$script->add($javascript);
parent::add($script);

Só que sempre ta aparecendo um erro se sintaxe na linha: $('select[name="pessoa"]').change(function(event){
Acredito que seja algo relacionado com aspas duplas e simples e talvez um carácter de escape. Estou procurando nas sintaxes de javascript mas ainda não consegui achar. Se alguém puder me ajudar...


[]´s


Stclara.

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


IF

Carlos, antes das aspas duplas use o "\" , assim:

 
  1. <?php
  2. $('select[name=\\"pessoa\\"]').change(function(event){ ... ...
  3. ?>
CS

Salve, amigo. Segui a tua indicação e o erro sumiu. A ideia é que quando selecionar o tipo de pessoa (F ou J) o input cpf_cnpj seja formatado de acordo com pessoa jurídica e física. Vi sugestões para usar o TElement. Só que com o código abaixo, agora sem o erro, não acontece a formatação. Poderia me dar uma ajuda?

 
  1. <?php
  2. /**
  3. * OprCadastroGeralForm Form
  4. * @author Stclara
  5. */
  6. class OprCadastroGeralForm extends TPage
  7. {
  8. protected $form; // form
  9. /**
  10. * Form constructor
  11. * @param $param Request
  12. */
  13. public function __construct( $param )
  14. {
  15. parent::__construct();
  16. // creates the form
  17. $this->form = new TQuickForm('form_OprCadastroGeral');
  18. $this->form->class = 'tform'; // change CSS class
  19. $this->form = new BootstrapFormWrapper($this->form);
  20. $this->form->style = 'display: table;width:100%'; // change style
  21. // define the form title
  22. $this->form->setFormTitle('Cadastro Geral');
  23. // create the form fields
  24. $id = new TEntry('id');
  25. $tipo = new TRadioGroup('tipo');
  26. $nome = new TEntry('nome');
  27. $endereco = new TEntry('endereco');
  28. $numero = new TEntry('numero');
  29. $bairro = new TEntry('bairro');
  30. $cidade = new TEntry('cidade');
  31. $uf = new TCombo('uf');
  32. $cep = new TEntry('cep');
  33. $cpf_cnpj = new TEntry('cpf_cnpj');
  34. $rg_ie = new TEntry('rg_ie');
  35. $fone1 = new TEntry('fone1');
  36. $fone2 = new TEntry('fone2');
  37. $fone3 = new TEntry('fone3');
  38. $email = new TEntry('email');
  39. $pessoa = new TCombo('pessoa');
  40. $situacao = new TRadioGroup('situacao');
  41. $cadastro = new TDate('cadastro');
  42. $tipo->setLayout('horizontal');
  43. $situacao->setLayout('horizontal');
  44. $itens_tipo = array();
  45. $itens_tipo['C'] = 'Cliente';
  46. $itens_tipo['F'] = 'Fornecedor';
  47. $tipo->addItems($itens_tipo);
  48. $itens_uf = array();
  49. $itens_uf['AC'] = 'Acre';
  50. $itens_uf['AL'] = 'Alagoas';
  51. $itens_uf['AP'] = 'Amapá';
  52. $itens_uf['AM'] = 'Amazonas';
  53. $itens_uf['BA'] = 'Bahia';
  54. $itens_uf['CE'] = 'Ceará';
  55. $itens_uf['DF'] = 'Distrito Federal';
  56. $itens_uf['ES'] = 'Espirito Santo';
  57. $itens_uf['GO'] = 'Goiás';
  58. $itens_uf['MA'] = 'Maranhão';
  59. $itens_uf['MT'] = 'Mato Grosso';
  60. $itens_uf['MS'] = 'Mato Grosso do Sul';
  61. $itens_uf['MG'] = 'Minas Gerais';
  62. $itens_uf['PA'] = 'Pará';
  63. $itens_uf['PB'] = 'Paraiba';
  64. $itens_uf['PR'] = 'Paraná';
  65. $itens_uf['PE'] = 'Pernambuco';
  66. $itens_uf['PI'] = 'Piauí';
  67. $itens_uf['RJ'] = 'Rio de Janeiro';
  68. $itens_uf['RN'] = 'Rio Grande do Norte';
  69. $itens_uf['RS'] = 'Rio Grande do Sul';
  70. $itens_uf['RO'] = 'Rondônia';
  71. $itens_uf['RR'] = 'Roraima';
  72. $itens_uf['SC'] = 'Santa Catarina';
  73. $itens_uf['SP'] = 'São Paulo';
  74. $itens_uf['SE'] = 'Sergipe';
  75. $itens_uf['TO'] = 'Tocantins';
  76. $uf->addItems($itens_uf);
  77. $pessoa_tipo = array();
  78. $pessoa_tipo['F'] = 'Física';
  79. $pessoa_tipo['J'] = 'Jurídica';
  80. $pessoa->addItems($pessoa_tipo);
  81. $situacao_tipo = array();
  82. $situacao_tipo['A'] = 'Ativo';
  83. $situacao_tipo['I'] = 'Inativo';
  84. $situacao->addItems($situacao_tipo);
  85. // add the fields
  86. $this->form->setFieldsByRow(2);
  87. $this->form->addQuickField('Código:', $id, 250 );
  88. $this->form->addQuickField('Tipo:', $tipo, 250);
  89. $this->form->addQuickField('Pessoa:', $pessoa, 250 );
  90. $this->form->addQuickField('Situação:', $situacao, 250 );
  91. $this->form->addQuickField('Nome:', $nome, 250 );
  92. $this->form->addQuickField('Endereço:', $endereco, 250 );
  93. $this->form->addQuickField('Número:', $numero, 250 );
  94. $this->form->addQuickField('Bairro:', $bairro, 250 );
  95. $this->form->addQuickField('Cidade:', $cidade, 250 );
  96. $this->form->addQuickField('UF:', $uf, 250 );
  97. $this->form->addQuickField('CEP:', $cep, 250 );
  98. $this->form->addQuickField('CPF / CNPJ:', $cpf_cnpj, 250 );
  99. $this->form->addQuickField('RG / IE:', $rg_ie, 250 );
  100. $this->form->addQuickField('Fone1:', $fone1, 250 );
  101. $this->form->addQuickField('Fone2:', $fone2, 250 );
  102. $this->form->addQuickField('Fone3:', $fone3, 250 );
  103. $this->form->addQuickField('Email:', $email, 250 );
  104. $this->form->addQuickField('Cadastro:', $cadastro, 230 );
  105. $script = new TElement('script');
  106. $script->type = 'text/javascript';
  107. $javascript = "
  108. // personaliza os campos de acordo com o tipo de pessoa
  109. $('select[name=\"pessoa\"]').change(function(event){
  110. var tipoPessoa
  111. $('select[name=\"pessoa\"] > option:selected').each(function(){
  112. tipoPessoa = $(this).text();
  113. });
  114. if(tipoPessoa == 'F') {
  115. $('input[name=\"cpf_cnpj\"]').val('');
  116. $('input[name=\"cpf_cnpj\"]').attr({onkeypress:'return entryMask(this,event,\"999.999.999-99\")'});
  117. }
  118. if(tipoPessoa == 'J') {
  119. $('input[name=\"cpf_cnpj\"]').val('');
  120. $('input[name=\"cpf_cnpj\"]').attr({onkeypress:'return entryMask(this,event,\"99.999.999/9999-99\")'});
  121. }
  122. });
  123. ";
  124. $script->add($javascript);
  125. parent::add($script);
  126. if (!empty($id))
  127. {
  128. $id->setEditable(FALSE);
  129. }
  130. /** samples
  131. $this->form->addQuickFields('Date', array($date1, new TLabel('to'), $date2)); // side by side fields
  132. $fieldX->addValidation( 'Field X', new TRequiredValidator ); // add validation
  133. $fieldX->setSize( 100, 40 ); // set size
  134. **/
  135. // create the form actions
  136. $this->form->addQuickAction(_t('Save'), new TAction(array($this, 'onSave')), 'fa:floppy-o');
  137. $this->form->addQuickAction(_t('New'), new TAction(array($this, 'onClear')), 'bs:plus-sign green');
  138. $this->form->addQuickAction(_t('Back to the listing'), new TAction(array('OprCadastroGeralList','onReload')), 'fa:table blue');
  139. // vertical box container
  140. $container = new TVBox;
  141. $container->style = 'width: 90%';
  142. //$container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  143. $container->add(TPanelGroup::pack('Cadastro Geral', $this->form));
  144. parent::add($container);
  145. }
  146. /**
  147. * Save form data
  148. * @param $param Request
  149. */
  150. public function onSave( $param )
  151. {
  152. try
  153. {
  154. TTransaction::open('sigaweb'); // open a transaction
  155. /**
  156. // Enable Debug logger for SQL operations inside the transaction
  157. TTransaction::setLogger(new TLoggerSTD); // standard output
  158. TTransaction::setLogger(new TLoggerTXT('log.txt')); // file
  159. **/
  160. $this->form->validate(); // validate form data
  161. $object = new OprCadastroGeral; // create an empty object
  162. $data = $this->form->getData(); // get form data as array
  163. $object->fromArray( (array) $data); // load the object with data
  164. $object->store(); // save the object
  165. // get the generated id
  166. $data->id = $object->id;
  167. $this->form->setData($data); // fill form data
  168. TTransaction::close(); // close the transaction
  169. new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));
  170. }
  171. catch (Exception $e) // in case of exception
  172. {
  173. new TMessage('error', $e->getMessage()); // shows the exception error message
  174. $this->form->setData( $this->form->getData() ); // keep form data
  175. TTransaction::rollback(); // undo all pending operations
  176. }
  177. }
  178. /**
  179. * Clear form data
  180. * @param $param Request
  181. */
  182. public function onClear( $param )
  183. {
  184. $this->form->clear();
  185. }
  186. /**
  187. * Load object to form data
  188. * @param $param Request
  189. */
  190. public function onEdit( $param )
  191. {
  192. try
  193. {
  194. if (isset($param['key']))
  195. {
  196. $key = $param['key']; // get the parameter $key
  197. TTransaction::open('sigaweb'); // open a transaction
  198. $object = new OprCadastroGeral($key); // instantiates the Active Record
  199. $this->form->setData($object); // fill the form
  200. TTransaction::close(); // close the transaction
  201. }
  202. else
  203. {
  204. $this->form->clear();
  205. $data = new StdClass;
  206. $data->tipo = 'C';
  207. $data->situacao = 'A';
  208. $data->pessoa = 'F';
  209. $this->form->setData($data);
  210. }
  211. }
  212. catch (Exception $e) // in case of exception
  213. {
  214. new TMessage('error', $e->getMessage()); // shows the exception error message
  215. TTransaction::rollback(); // undo all pending operations
  216. }
  217. }
  218. }
  219. ?>

IF

Acho que faltou vc passar um valor pra variável tipoPessoa na linha 123:

<?
var tipoPessoa = $('select[name="pessoa"]').val();
?>
CS

Resolvido:

entryMask foi trocado por tentry_mask ...