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 ?

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