Discriminar teclas con el evento onKeypress

A ver si alguien me puede ecahr una manita.
Mi problema es que necesito usar te teclas diferentes para que me lancen tres eventos diferentes y no se como hacerlo. He probado con if(event. KeyCode== NºASCII) pero no me lo coge. A ver si me podríais ayudar, es u urgente

1 respuesta

Respuesta
1
En principio no se donde puedes fallar. Por lo tanto, te resumo un poco los pasos a seguir:
1.- Capturar el evento y asignar una función
document.onkeypress=teclaPulsada
Donde teclaPulsada es el nombre de la función que será
llamada al pulsar una tecla.
2.- Definir la función teclaPulsada
document.onkeypress=teclaPulsada
function teclaPulsada()
{
var teclaASCII=event.keycode
var teclaCHAR=String.fromCharCode(teclaASCII)
...
}
Donde Puedes emplear:
A.- event.keyCode
para obtener el código de la tecla pulsada
B.- String.fromCharCode(event.keyCode)
para obtener la letra pulsada
3.- Completar la función con la sentencia que compare valores
y en función de la tecla pulsada realice una acción:
document.onkeypress=teclaPulsada
function teclaPulsada()
{
var teclaASCII=event.keyCode
var teclaCHAR=String.fromCharCode(teclaASCII)
if (teclaASCII==97 || teclaASCII==65)
{
alert("Se pulso la tecla: 'a' o 'A'")
}
else
{
alert("Valor de keyCode: "+teclaASCII+'\nTecla pulsada: '+teclaCHAR)
}
}
También puedes comparar directamente el carácter en lugar del valor ASCII:
document.onkeypress=teclaPulsada
function teclaPulsada()
{
var teclaASCII=event.keyCode
var teclaCHAR=String.fromCharCode(teclaASCII)
if (teclaCHAR=='a' || teclaCHAR=='A')
{
alert("Se pulso la tecla: 'a' o 'A'")
}
else
{
alert("Valor de keyCode: "+teclaASCII+'\nTecla pulsada: '+teclaCHAR)
}
}
4.- Por último un consejo. Para realizar acciones en función de la tecla
pulsada, te aconsejo el empleo de switch. Por ejemplo para las teclas
'A', 'B' y 'C':
document.onkeypress=teclaPulsada
function teclaPulsada()
{
var teclaASCII=event.keyCode
var teclaCHAR=String.fromCharCode(teclaASCII)
switch(teclaCHAR.toUpperCase())
{
case 'A': alert(1);break;
case 'B': alert(2);break;
case 'C': alert(3);break;
Default: alert("La tecla pulsada no es ni 'A' ni 'B' ni 'C'")
}
}
En el ejemplo, obtengo el carácter correspondiente a la tecla pulsada,
lo paso a mayúsculas y en función del valor que tome efectúo una acción.
También añado una acción por defecto, por si se pulsa la tecla equivocada.
NOTA: Si deseas conocer el código asignado a cada tecla, prueba el siguiente,
Código y pulsa la tecla de la que quieres conocer su código.
document.onkeypress=teclaPulsada
function teclaPulsada()
{
var teclaASCII=event.keyCode
var teclaCHAR=String.fromCharCode(teclaASCII)
alert('Tecla: '+teclaCHAR+'\nCódigo: '+teclaASCII)
}
Espero que con esto te sea suficiente para solucionar tu problema.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas