Lançado Adianti Framework 8.1!
Clique aqui para saber mais
Como desabilitar o TAB do ID de um TDBSeekButton? Boa noite Estou precisando desabilitar o TAB do ID de um TDBSeekButton mas não estou obtendo exito. Peguei este exemplo aqui no fórum e substitui o 13 por 9, pois vi na internet que o 9 se refere ao TAB, mas não deu certo! ...
EB
Como desabilitar o TAB do ID de um TDBSeekButton?  
Fechado
Boa noite

Estou precisando desabilitar o TAB do ID de um TDBSeekButton mas não estou obtendo exito.

Peguei este exemplo aqui no fórum e substitui o 13 por 9, pois vi na internet que o 9 se refere ao TAB, mas não deu certo!

  1. <?php
  2.         TScript::create('$("input, select, text").keypress(function (e) {var code = null;
  3.         code = (e.keyCode ? e.keyCode : e.which);                
  4.         return (code == 13) ? false : true;
  5.         });');
  6. ?>

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


JD

Para desabilitar o evento use preventDefault(); e use a queryselector "".tseekentry" tseekentry é a classe css do component que você quer manipular.
  1. <?php
  2.         TScript::create('$(".tseekentry").keypress(function (e) {
  3.         e.preventDefault();
  4.         });');
  5. ?>
JD

Ops kkkkk

  1. <?php
  2. $script =      TScript::create('<script>');
  3. $script->add('$(".tseekentry").keypress(function (e) {
  4.         e.preventDefault();
  5. });');
  6. ?>
</script>
EB

Olá Jheferson

Esse código ai é pra desabilitar especificamente o TAB é?

Onde devo colocar esse trecho de código?

Eu coloquei no construtor, mas quando vou acessar a tela aparece aquele popup "Carregando" e só fica nele.

JD

O exemplo que eu citei mostra como você deve fazer para desabilitar um evento no component.
O código javascript correto para desabilitar o tab seria:

PHP:

  1. <?php
  2. $script =      TScript::create('<script>');
  3. $script->add('$(".tseekentry").keypress(function (e) {
  4.         if (objEvent.keyCode == 9) {
  5.                   e.preventDefault();
  6.         }
  7. });');
  8. ?>

</script>
JD

Troque o "objEvent" por "e".

  1. <?php
  2. $script =      TScript::create('<script>');
  3. $script->add('$(".tseekentry").keypress(function (e) {
  4.         if (e.keyCode == 9) {
  5.                   e.preventDefault();
  6.         }
  7. });');
  8. ?>
</script>
EB

Ok Jheferson.

Fiz dessa forma ai, mas só fica "Carregando"!

Alguma idéia do porque disso?

Veja onde coloquei:
  1. <?php
  2. class EntradaFormView extends TPage {
  3.     protected $form;
  4.     function __construct() {
  5.         parent::__construct();                
  6.         
  7.         $this->form = new TForm('form_Entrada');
  8.               
  9.         $script TScript::create('<script>');
  10.         $script->add('$(".tseekentry").keypress(function (e) {
  11.         if (e.keyCode == 9) {
  12.                   e.preventDefault();
  13.         }
  14. });');
  15.         $this->form->class 'tform';
  16.         $table = new TTable;
  17.         $table->style 'width: 100%';
  18. ?>
</script>
JD

Tente assim:

  1. <?php
  2. class EntradaFormView extends TPage {
  3.     protected $form;
  4.     function __construct() {
  5.         parent::__construct();                
  6.         
  7.         $this->form = new TForm('form_Entrada');
  8.               
  9.         $script = new TElement('script');
  10.         $script->add('$(".tseekentry").keypress(function (e) {
  11.         if (e.keyCode == 9) {
  12.                   e.preventDefault();
  13.         }
  14. });');
  15.         $this->form->class 'tform';
  16.         $table = new TTable;
  17.         $table->style 'width: 100%';
  18. $container = new TVBox;
  19. $container->style 'width: 100%';
  20. //$container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  21. $container->add($this->form);
  22. $container->add($table);
  23. $container->add$script);
  24. parent::add($container);
  25. ?>
EB

Eu achei este exemplo aqui, Jheferson Fonseca.

Ele funciona em partes:
  1. <?php
  2.         TScript::create('$("input, select, text").keypress(function (e) {var code = null;
  3.         code = (e.keyCode ? e.keyCode : e.which);                
  4.         return (code = 9) ? false : true;
  5.         });');
  6. ?>


Ele tanto desabilita o TAB como não permite que seja digitado nada no campo ID do TDBSeekButton

Mas eu queria mesmo era só desabilitar o TAB no ID do TDBSeekButton
EB

Esse que você postou por último não deu certo não!
JD

Sugiro que utilize o "preventDefault()" para anular o evento assim:
  1. <?php
  2.         TScript::create('$("input, select, text").keypress(function (e) {var code = null;
  3.         code = (e.keyCode ? e.keyCode : e.which);                
  4.         if(code = 9) {
  5.              e.preventDefault();
  6.         }
  7.         });');
  8. ?>
EB

Fiz conforme você sugeriu.

Aparentemente pro usuário não nenhuma diferença em relação a outra forma que eu havia colocado né?

Qual a diferença de usar o preventDefault e o return false?
JD

Com o preventDefault você anula o evento e reescreve o seu comportamento, já com return false você simplesmente anula o evento.
Fiz uns testes e descobri o problema, use keydown no lugar de keypress pois o evento do tab ocorre quando o usuário aperta a tecla, ja o evento keypress ocorre quando solta a tecla, no caso o evento correto seria o keypress.
JD

********** O evento correto seria o keydown.

Aff preciso aprender a conferir o texto antes de enviar kkkk
EB

Ok Jheferson

Muito obrigada mesmo, ajudou muito.
PD

Qual o motivo de desabilitar o TAB?
O autocomplete é um recurso tão legal...