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. $this->form = new TForm('form_Entrada');
  7. $script = TScript::create('<script>');
  8. $script->add('$(".tseekentry").keypress(function (e) {
  9. if (e.keyCode == 9) {
  10. e.preventDefault();
  11. }
  12. });');
  13. $this->form->class = 'tform';
  14. $table = new TTable;
  15. $table->style = 'width: 100%';
  16. ?>
</script>
JD

Tente assim:

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