Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Simular tab com o enter Ola Boa tarde. Gostaria de saber como faço pra sempre que for pressionado enter simule um tab ou seja qro mudar o o foco de componente. Outra duvida minha e referente a criar teclas de atalho em minha aplicacao tem como fazer isso? se sim como algum exemplo ?...
FP
Simular tab com o enter  
Fechado
Ola Boa tarde.
Gostaria de saber como faço pra sempre que for pressionado enter simule um tab ou seja qro mudar o o foco de componente.
Outra duvida minha e referente a criar teclas de atalho em minha aplicacao tem como fazer isso? se sim como algum exemplo ?

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


ES

Olá Fernando!
Vou te ajudar com relação a emular o "Enter" como "Tab":
uso essa função desde a primeira versão do framework e funciona muito bem. Essa função que vou te passar deve ser colocada no arquivo application.js se você estiver trabalhando com a versão 2.0 ou em outro arquivo.js desde que seja chamado na construção do form.

Vamos lá:
Código Js
<script>$(document).ready(function(){
FAZ ENTER FUNCIONAR COMO TAB **/
textboxes = $("input, select, textarea");

if ($.browser.mozilla) {
$(textboxes).keypress (checkForEnter);
} else {
$(textboxes).keydown (checkForEnter);
}
});</script>

Note que funciona com input, select e textarea.

espero que tenha ajudado.

abs
Eliezer
RC

Muito bom Eliezer!!!

Eu sempre gostei de usar esse tipo de função, conforme nossos antigos sistemas para Desktop em VB6 e Delphi... hehehehe Acho que ajuda bastante na usabilidade. Mas com o Adianti nunca tentei usar.

Já vou introduzir nos meus sistemas com o Adianti.

Só não gosto muito de usar nas TextAreas, pois as vezes é necessário usar quebras de linhas nos textos.

Abraço,

Rafael Ramos
FP

Muito obrigado vou testar no próximo final de semana kkkk e posto minhas impressões muito obrigado
RM

desculpe sou novado - basta apenas colocar no js que funcionara - pois o meu quando aperto enter ele confirma o formulario
EM

Com qual versão do framework você está trabalhando? se for a versão 2.0 sim, vai funcionar porque o arquivo application.js já é carregado por default, porém se você estiver com outra versão ai terá que carregar seu arquivo através do comando dentro do método de construção:
  1. <?php parent::include_js('app/lib/include/application.js'); ?>
PD

Fernando,

Segue outra thread do fórum a respeito, de 2013:
www.adianti.com.br/forum/pt/view_478?sobre-tab-por-enter

Primeiro certifique-se de que esteja trabalhando com a versão 2.0:
www.adianti.com.br/framework-migration

Não há necessidade de carregar o application.js via include_js(), pois o mesmo já é carregado nativamente pelo libraries.html, que forma os cabeçalhos da página.

Se você somente executar esse Javascript (pode ser no application.js), deve funcionar:
stackoverflow.com/a/12130486

Por fim, aproveitem para tentar reeducar os usuários ;-) Não é legal forçar alguns padrões do Desktop na Web. Os tempos são outros ;-)

Abraço,
Pablo
AM

Consegui, primeiro tem que colocar sim esta linha abaixo no form do framework versão 2.0, dentro do método construct(). parent::include_js('app/lib/include/application.js');

Observação: Disseram que no framework 2.0 não precisa inserir esta linha acima, mas é mentira, eu retirei e deu erro, e o meu framework é o 2.0.

Veja como fica:

  1. <?php
  2. class FilmeForm extends TPage
  3. {
  4.     private $form;
  5.     
  6.     public function __construct()
  7.     {
  8.         parent::__construct();
  9.         // Executa um script que substitui o Tab pelo Enter.
  10.         parent::include_js('app/lib/include/application.js');
  11. ====================================================
  12. Depois insira este script abaixo no arquivo:  app/lib/include/application.js
  13. Veja abaixo o script que funciona no internet explorer 9 e no google chrome (versão43.0.2357.132 m). ObservaçãoO script abaixonão funciona no Internet explorer 8. E eu não testei em outros navegadores.
  14. $('body').on('keydown''input, select, textarea', function(e) {
  15. var self = $(this)
  16.   , form self.parents('form:eq(0)')
  17.   , focusable
  18.   next
  19.   prev
  20.   ;
  21. if (e.shiftKey) {
  22.  if (e.keyCode == 13) {
  23.      focusable =   form.find('input,a,select,button,textarea').filter(':visible');
  24.      prev focusable.eq(focusable.index(this)-1); 
  25.      if (prev.length) {
  26.         prev.focus();
  27.      } else {
  28.         form.submit();
  29.     }
  30.   }
  31. }
  32.   else
  33. if (e.keyCode == 13) {
  34.     focusable form.find('input,a,select,button,textarea').filter(':visible');
  35.     next focusable.eq(focusable.index(this)+1);
  36.     if (next.length) {
  37.         next.focus();
  38.     } else {
  39.         form.submit();
  40.     }
  41.     return false;
  42. }
  43. });
AF

Bom dia pessoal! Revivendo o tópico.
Percebi que, caso eu carregue o application.js em uma determinada página, e posteriormente abrir uma outra página (que eu não posso ter a ação de Enter como Tab), ele continuará aplicando o Enter como Tab, já que eu abri o código anteriormente. Neste caso, como proceder para que, em determinadas páginas eu possa garantir que isso não ocorra?

Obrigado a todos!