Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Alterar Atributo de campo em tempo de execução Olá Pessoal! Através do método setChangeAction de um combo é possível alterar o valor de outro campo em tempo de execução, pois bem, tentei utilizar o mesmo princípio para alterar um atributo de um campo, ou seja, o campo estava setado com o readonly = true depois de selecionar na combo o valor "Sim" o método de outro campo deveria mudar para readonly = ...
ES
Alterar Atributo de campo em tempo de execução  
Fechado
Olá Pessoal!
Através do método setChangeAction de um combo é possível alterar o valor de outro campo em tempo de execução, pois bem, tentei utilizar o mesmo princípio para alterar um atributo de um campo, ou seja, o campo estava setado com o readonly = true depois de selecionar na combo o valor "Sim" o método de outro campo deveria mudar para readonly = false.

Infelizmente não deu certo, então usei um artifício nesse momento que ficou assim:
  1. <?php $obj = new StdClass;
  2.         if ($param['is_link']=='N') {
  3.             $obj->pai 'Y';
  4.             echo ('$('."'#classe'".').attr("readonly", true);
  5.                    $('."'#classe'".').attr("class", "tfield_disabled");
  6.         } ?>


Com esse artifício o resultado foi positivo, mas pergunto se existe uma forma de executar tal procedimento sem precisar recorrer ao echo?

att.
Eliezer

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (3)


GF

Eliezer, tudo bem?
Vou te dar uma sugestão, não faz isso... crie códigos javascript para alterar o DOM em tempo de execução, afinal é para isso que servem. Segue um exemplo de como você poderia desenvolver o que você precisa, sem gambis, pogs, usando os recursos disponíveis do framework.

Exemplo:

$script = new TElement('script'); $script->type = 'text/javascript'; $javascript = " // personaliza os campos de acordo com o tipo de pessoa $('select[name=\"tipopessoa_id\"]').change(function(event){ var tipoPessoa $('select[name=\"tipopessoa_id\"] > option:selected').each(function(){ tipoPessoa = $(this).text(); }); if(tipoPessoa.toLowerCase() == 'física') { $('label:contains(CNPJ:)').parent().css('left',82); $('label:contains(CNPJ:)').text('CPF:'); $('input[name=\"cpf_cnpj\"]').val(''); $('input[name=\"cpf_cnpj\"]').attr({onkeypress:'return entryMask(this,event,\"999.999.999-99\")'}); $('input[name=\"insc_estadual\"]').attr({class:'tfield_disabled',readonly:'1',value:''}); $('label:contains(Fantasia:)').parent().css('left',65); $('label:contains(Fantasia:)').text('Apelido:'); } if(tipoPessoa.toLowerCase() == 'jurídica') { $('label:contains(CPF:)').parent().css('left',75); $('label:contains(CPF:)').text('CNPJ:'); $('input[name=\"cpf_cnpj\"]').val(''); $('input[name=\"cpf_cnpj\"]').attr({onkeypress:'return entryMask(this,event,\"99.999.999/9999-99\")'}); $('input[name=\"insc_estadual\"]').attr({class:'tfield',readonly:false,value:''}); $('label:contains(Apelido:)').parent().css('left',58); $('label:contains(Apelido:)').text('Fantasia:'); } }); "; $script->add($javascript); parent::add($script);


Como podes ver é um exemplo bem simples. Nele estou alterando labels e inputs através de um TCombo. Espero que tenha ajudado. Abraço!
PD

É isso aí mesmo Guilherme, eu mesmo ia sugerir usar a TElement :-)

abs,
Pablo
ES

Valeu pessoal! Resolvi com TElement mesmo. Obrigado!