Foros del Web » Programando para Internet » Javascript »

Teclas especiales en evento keyPress

Estas en el tema de Teclas especiales en evento keyPress en el foro de Javascript en Foros del Web. ¡Hola! Vuelvo a pedir ayuda en este buen foro. Tengo una página que, para unos controles INPUT de tipo TEXT, en el evento keyPress llaman ...
  #1 (permalink)  
Antiguo 28/07/2008, 12:54
Avatar de qvixote  
Fecha de Ingreso: marzo-2008
Mensajes: 79
Antigüedad: 16 años, 1 mes
Puntos: 2
Teclas especiales en evento keyPress

¡Hola!

Vuelvo a pedir ayuda en este buen foro.

Tengo una página que, para unos controles INPUT de tipo TEXT, en el evento keyPress llaman a una función que hace un par de validaciones para cuando se presiona la tecla ENTER o BACKSPACE, lo que es muy fácil con eso de KeyCode y similares, para distintos navegadores, que me entraga el código de la tecla que se presionó, como 13 en el caso de ENTER.

El problema es que con las teclas especiales, como las tecla de función (F1, F2, F3...), teclas de dirección y otras, no se me muestra un código de tecla, con lo que no puedo saber qué tecla se ha presionado.

Por ejemplo, este código:

Código:
<script>
function teclas(e) {
  var keynum;
  if (window.event) {
    //Internet Explorer
    keynum = e.KeyCode;
  }
  else if (e.which) {
    //Netscape, Firefox, Opera
    keynum = e.which;
  }
  alert(keynum);
}
</script>

<input type='text' onkeypress='javascript: teclas(event);' />
Muestra un Alert con el código de la tecla, pero para las teclas especiales devuelve 'undefined'.

¿Alguien me puede ayudar a capturar teclas especiales? Me interesan las teclas de dirección.

De antemano gracias.
  #2 (permalink)  
Antiguo 28/07/2008, 13:14
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 4 meses
Puntos: 57
Respuesta: Teclas especiales en evento keyPress

prueba este codigo:

Código:
<html>
<script>
function inicializar() {
	document.onkeydown = function () {
		switch (event.keyCode) {
			case 37 :
				alert("izquierda");
				break;
			case 38 :
				alert("arriba");
				break;
			case 39 :
				alert("derecha");
				break;
			case 40 :
				alert("abajo");
				break;
			case 113: alert("F2"); break;
			case 114: alert("F3"); break;
			case 115: alert("F4"); break;
			case 116: alert("F5"); break;
			case 117: alert("F6"); break;
			case 118: alert("F7"); break;
			case 119: alert("F8"); break;
			case 120: alert("F9"); break;
			case 121: alert("F10"); break;
			case 122: alert("F11"); break;
			case 123: alert("F12"); break;
			default :
				return true;
				break;
		}
		event.keyCode = 0;
		event.returnValue = false;
		event.cancelBubble = true;
		return false;
	}
	document.onhelp = function () { alert("F1"); return false; }
}
</script>
<body onload="inicializar()">
Presiona teclas especiales y de direccion
</body>
  #3 (permalink)  
Antiguo 28/07/2008, 13:37
Avatar de qvixote  
Fecha de Ingreso: marzo-2008
Mensajes: 79
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: Teclas especiales en evento keyPress

Lo acabo de probar con dos navegadores, pero Firefox (que es el que más me interesa) no sirve. Veré si puedo hacer que funciona ahí también...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:41.