Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ricardoKRT

[Resolvido] Capturar tecla (teclado) sem usar o Enter

Recommended Posts

Bom dia , pessoal...

 

tenho um site em Ruby on Rails, mas utilizo o JavaScript(básico... conheço pouco!) para executar funções/ações na maquina do usuário em tempo de execução... timeout etc

 

Talvez possam me ajudar: necessito controlar a exibição das paginas ( para frente ou para trás ) através do teclado (sem o uso do mouse ou backspace etc)... tenho testado a solução onkeypress/ onkeydown e onkeyup... a validação das teclas já está funcionando mas para executar o desvio (outra página) ou mesmo repassar o valor da tecla para o Ruby poder processar exige-se teclar ENTER no final.

 

Existe alguma forma em JavaScript que permita teclar (uma) qualquer tecla e esta ser processada ou repassada imediatamente... sem a necessidade do Enter?

 

obs.: para utilizar no IE 7 ou superior

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está utilizando âncoras (elementos <a href...>)???

Não programo em Ruby, mas creio que você deve gerar uma saída em HTML, estou certo?

 

Se sim, poste a estrutura do HTML GERADO aqui para termos uma ideia.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Henriue, Desculpe a demora!... andei testando ( lembre que sou "fraco" em javascript e ruby tbem ) mas acho que estou próximo de resolver meu problema. A única coisa que não consigo e seria a solução ideal é repassar o valor da variável resultante do JSC para o Ruby poder tratar... se tiver alguma sugestão!

 

minha solução até o momento captura a tecla e permite o desvio de página, pode ser útil para alguem com problema parecido:

 

A FUNÇÃO:

<script  type="text/javascript">   

function validaTecla(valores, event) {   
   var tec0=48, //menu
   tec1=49, //esquerda
   tec2=50, //cima
   tec3=51, //direita
   tec4=52, //baixo
   tec5=53, //enter

key,tecla;   

//I.E   
tecla=event.keyCode;   

key=String.fromCharCode(tecla);   

    switch(tecla) {   

         case tec0:
             tecz.innerText = tecla;
             document.location = "/pg0";
             return true;
         case tec1:
             tecz.innerText = tecla;
             document.location = "/pg1";
             return true;
  case tec2:
             tecz.innerText = tecla;
             document.location = "/pg2";
             return true;
         case tec3:
             tecz.innerText = tecla;
             document.location = "/pg3";
             return true;
  case tec4:
             tecz.innerText = tecla;
             document.location = "/pg4";
             return true;
  case tec5:
             tecz.innerText = tecla;
      document.location = "/pg5";
             return true;              
  default:   
      if(valores.indexOf(key1)!=-1) {   
         return true;   
            }   
     }   
    return false;   
}   

</script>  

 

O FOCO:

<body onLoad="document.f1.tec.focus()">

O data-entry:

<form method=post action=''" name=f1> 
<input type="text" name="tec" size=1 onkeypress="return validaTecla('012345', event);"> 
</form>
<A ID = "tecz" STYLE = "font-weight: bold"></A>

Bom pessoal... tive ajuda pesquisando na web... só adaptei para minha necessidade!

 

Grato pela atenção e se souber de alguma solução mais elegante... fico grato se me enviarem!

 

abraços

 

Obs.: na função acima os valores das teclas são os numéricos de 0 a 5, isto porque o hardware que utilizo permite especificar o caracter que a tecla deve informar e com isso eu controlo o fluxo pelo Ruby.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom amigos... game over!

 

A solução que achei para passar o conteúdo JSC para o Ruby foi utilizar sessions (ou cookie) para receber e tratar logicamente este conteúdo em um mesmo Controller/View(html)RubyonRails e devolver os dados solicitados ao usuário.

 

aliás... já observaram que as outras diciplinas/profissões possuem clientes, mas só profissionais de informática e traficantes tem usuários!... sinistro!

 

Grande abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.