Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Desabilitar TCombo com enableSearch ativado Alguém precisou desabilitar uma combo com enablesearch ativado? eu não consegui desativar....
FC
Desabilitar TCombo com enableSearch ativado  
Alguém precisou desabilitar uma combo com enablesearch ativado? eu não consegui desativar.

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (3)


NR

Consegui com o código abaixo:
  1. <?php
  2. TScript::create("window.setTimeout(function(){
  3.                             $('#{$combo->getId()}').select2('readonly',true);
  4.                          },100);");
  5. ?>
FC

Bem vamos minha necessidade era desabilitar a combo em tempo de execução;

no application.js foram criadas 2 funções novas.

function tcombo_disable_fields(form_name, field) { if(typeof form_name != 'undefined' && form_name != '') { form_name = 'form[name="'+form_name+'"] '; } else { form_name = ''; } var selector = '[name="'+field+'"]'; if ($('#'+field).length >0) { var selector = '#'+field } try { $(form_name + selector).select2('readonly',true); } catch (e) { } } function tcombo_enable_fields(form_name, field) { if(typeof form_name != 'undefined' && form_name != '') { form_name = 'form[name="'+form_name+'"] '; } else { form_name = ''; } var selector = '[name="'+field+'"]'; if ($('#'+field).length >0) { var selector = '#'+field } try { $(form_name + selector).select2('readonly',false); } catch (e) { } }


Na TCombo criada as novas funções

  1. <?php
  2.  public static function enableFields($form_name$field)
  3.     {
  4.         TScript::create" tcombo_enable_fields('{$form_name}', '{$field}'); " );
  5.     }
  6. public static function enableFields($form_name$field)
  7.     {
  8.         TScript::create" tcombo_enable_fields('{$form_name}', '{$field}'); " );
  9.     }
  10. ?>


Agora para basta usar normalmente

  1. <?php
  2. TCombo::enableFields('form''combo_search'); 
  3. ?>

FA

Bom dia Pessoal...
Tenho tentado fazer o bloqueio de componentes em tempo de execução com o TCombo com enableSearch ativo e o TUniqueSearch (e suas variantes TDB) porém tem sido muito frustrante já que necessito que fiquem bloqueados mas que permaneçam com seus valores inalterados. Seguindo essa tônica, consegui pouco resultado usando javascript pois até consigo desativar o campo mudando o atributo para disabled, porém o valor se perde. Com o atributo readonly o componente fica com a aparência de desabilitado, mas continua mudando os valores. Bem...resolvi mudar a língua na pesquisa e .... achei. Primeiramente é necessário adicionar uma biblioteca js que pode ser localizado neste endereço https://github.com/corenzan/readonly.js. No caso eu criei um arquivo readonly.js na pasta app/include e inclui o atalho no arquivo libraries.html para ser carregado. No arquivo app/include/application.js acrescentei as duas chamadas abaixo cujo código aproveitei aqui do forum:
function tcombo_disable_fields(form_name, field) { if(typeof form_name != 'undefined' && form_name != '') { form_name = 'form[name="'+form_name+'"] '; } else { form_name = ''; } var selector = '[name="'+field+'"]'; if ($('#'+field).length >0) { var selector = '#'+field } try { //$(form_name + selector).data('select2').destroy(); $(form_name + selector).readonly(true); } catch (e) { } } function tcombo_enable_fields(form_name, field) { if(typeof form_name != 'undefined' && form_name != '') { form_name = 'form[name="'+form_name+'"] '; } else { form_name = ''; } var selector = '[name="'+field+'"]'; if ($('#'+field).length >0) { var selector = '#'+field } try { //$(form_name + selector).select2('readonly',false); $(form_name + selector).readonly(false); } catch (e) { } }

Feito isso criei num arquivo de componentes que uso, duas chamadas estáticas para poder bloquear ou liberar o comando:
  1. <?php
  2. /**
  3.  *
  4.  **/
  5.     public static function onBloqueio($form,$campo)
  6.     {
  7.         TScript::create" tcombo_disable_fields('{$form}', '{$campo}'); " );
  8.     }
  9. /**
  10.  *
  11.  **/
  12.     public static function onLibera($form,$campo)
  13.     {
  14.         TScript::create" tcombo_enable_fields('{$form}', '{$campo}'); " );
  15.     }
  16. ?>

Feito assim, o componente é bloqueado/liberado para edição em tempo de execução usando um changeAction por exemplo preservando seu valor.

Espero ter ajudado.