Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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.
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
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.