Foros del Web » Programando para Internet » Javascript »

Consulta de Evento onkeydown

Estas en el tema de Consulta de Evento onkeydown en el foro de Javascript en Foros del Web. Hola a todos de antemano les doy las gracias por su colaboracion ya que gracia a uds e podido solucionar varios problemas. El motivo de ...
  #1 (permalink)  
Antiguo 04/03/2008, 15:39
 
Fecha de Ingreso: abril-2007
Mensajes: 156
Antigüedad: 17 años
Puntos: 3
Consulta de Evento onkeydown

Hola a todos de antemano les doy las gracias por su colaboracion ya que gracia a uds e podido solucionar varios problemas. El motivo de hoy es el siguiente :

tengo un formulario el cual esta hecho para digitar notas de un colegio. lo que teno que hacer es que cuando el usuario digite la tecla "1" en el cajoncito aparesca "E" y cuando digite la tecla "2" aparesca "B".

cuando el digita una de estas teclas llamo una funcion en la cual capturo el numero.

var key=window.event.keyCode;//codigo de tecla.

con esta variable hago un switch para asi remplazar ese valor que oprimio osea el "1" o "2" por los respectivos valores que quiero que aparescan en su lugar.

el problema es. como le asigno el valor por el que yo remplazo el "1" o el "2" al cajoncito????

otra pregunta:
Alguien sabe como se hace una especie de funcion que simule la tecla "tap" pero en vez que ir hacia un lado vaya hacia abajo?


gracias por su atencion ..de verdad..gracias a todos.
  #2 (permalink)  
Antiguo 04/03/2008, 19:53
 
Fecha de Ingreso: diciembre-2007
Ubicación: Argentina
Mensajes: 151
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: Consulta de Evento onkeydown

Sería bueniiiiiiiisimo que publiques el código así sabemos mejor de que hablas y no tenemos que trabajar como perros intentando adivinar lo que realmente quieres.

De onda
Saludos
  #3 (permalink)  
Antiguo 05/03/2008, 08:46
 
Fecha de Ingreso: abril-2007
Mensajes: 156
Antigüedad: 17 años
Puntos: 3
Re: Consulta de Evento onkeydown

Claro por supuesto que publico el codigo para que les quede mas facil colaborar:

<input type='text' name='Logro_1_1' value='' size='1' maxlength='3' style='background-color:#F7F2BB; color:black' onkeydown='return ControTeclado(this);' />

<input type='text' name='Logro_2_1' value='' size='1' maxlength='3' style='background-color:#F7F2BB; color:black' onkeydown='return ControTeclado(this);' />

<input type='text' name='Logro_1_2' value='' size='1' maxlength='3' style='background-color:#F7F2BB;
color:black' onkeydown='return ControTeclado(this);' />

//en este codigo anterior en el evento onkeydown llamo a una funcion de nombre "ControTeclado" el cual se encarga de remplazar los caracteres. por ejemplo: si el usuario digita "1" lo remplazo por la letra "E" y si digita el 2 por la letra "S".

Codigo javascript:

function ControTeclado(val){
var key=window.event.keyCode;//codigo de tecla.
//alert(key);

switch(key){

case 97:
val.value='E';
break;

case 98:
val.value='S';
break;

case 99:
val.value='A';
break;

case 100:
val.value='I';
break;

case 101:
val.value='D';
break;

case 40:
alert('abajo');
break;

case 38:
alert('arriba');
break;

}


basicamente tengo dos dificultades:

1. no Funciona en Firefox...

2. cuando Digito por ejemplo el numero "1" me devuelve al cajon la letra "E" pero me la pinta "E1" como hago para borrar ese 1? ese "1" es el que digita el usuario.


Otra inquietud:

Como hago para programar una tecla como por ejemplo la tecla "+" como una especie de Tap , pero en vez de recorrido horizontal sea vertical?.

muchisisisiisimas gracias por su colaboracion de verdad.
  #4 (permalink)  
Antiguo 05/03/2008, 16:35
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Consulta de Evento onkeydown

Hola gersonmaba:

Vengo a solucionarte tus dudas:

En principio el código no funciona en ff porque no es estándar, está creado sólo para IE. Hay que tener en cuenta que el código sería event.which para sacar el código de tecla.

Y la solución para que no se coloque la tecla pulsada en la caja es sencilla, colocar un simple return false al final de la función:

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<
head>
<
meta http-equiv="Content-type" content="text/html;charset=iso-8859-1" />
<
meta name="Author" content="derkeNuke" />
<
title>Página nueva</title>
<
style type="text/css">

</
style>
</
head>

<
body>



<
input type='text' name='Logro_1_1' value='' size='1' maxlength='3' style='background-color:#F7F2BB; color:black' onkeydown='return ControTeclado(this, event);' />

<
input type='text' name='Logro_2_1' value='' size='1' maxlength='3' style='background-color:#F7F2BB; color:black' onkeydown='return ControTeclado(this, event);' />

<
input type='text' name='Logro_1_2' value='' size='1' maxlength='3' style='background-color:#F7F2BB;
color:black' 
onkeydown='return ControTeclado(this, event);' />




<
script type="text/javascript">
<!--


function 
ControTeclado(valev){
    if( 
window.event 
        var 
key window.event.keyCode;//codigo de tecla.
    
else
        var 
key ev.which;

    switch(
key){

        case 
97:
        
val.value='E';
        break;

        case 
98:
        
val.value='S';
        break;

        case 
99:
        
val.value='A';
        break;

        case 
100:
        
val.value='I';
        break;

        case 
101:
        
val.value='D';
        break;

        case 
40:
        
alert('abajo');
        break;

        case 
38:
        
alert('arriba');
        break;

    }

    return 
false;

}




// -->
</script>

</body>
</html> 

Espero que así se solucine. Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #5 (permalink)  
Antiguo 06/03/2008, 08:02
 
Fecha de Ingreso: abril-2007
Mensajes: 156
Antigüedad: 17 años
Puntos: 3
Re: Consulta de Evento onkeydown

Hola derkenuke, Gracias por su Colaboracion me fue de mucha ayuda todo sale perfecto gracias de verdad. Pero tengo una pregunta.

Al poner el "return false;" para que no se coloque la tecla pulsada en la casilla, se desactivan o no se ejecutan las teclas que no esten en el Switch.

por ejemplo si oprimo el numero "1" en este caso me lo remplaza por la letra "E" pero si oprimo cualquier otra tecla que no este en ese Switch no hace nada. entonces como hago para que eso no suseda??

gracias de nuevo por la colaboracion de todos ustedes son de gran ayuda para esta comunidad.
  #6 (permalink)  
Antiguo 06/03/2008, 09:39
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Consulta de Evento onkeydown

Hola de nuevo:

Entonces tendríamos que distinguir entre los dos casos: cuando has reemplazado y cuando no. La mejor forma que veo de hacerlo con la estructura switch es poniendo en el caso default un return true, y al final de la función mantener el return false. De esa manera si entra en algún caso se devuelve false y si no devuelve true.

Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #7 (permalink)  
Antiguo 06/03/2008, 10:43
 
Fecha de Ingreso: abril-2007
Mensajes: 156
Antigüedad: 17 años
Puntos: 3
Re: Consulta de Evento onkeydown

Hola de nuevo . tiene razon con eso se soluciona ese pequeño problema, muchisimas gracias derkenuke y codigojavascript por su ayuda de verdad quedo muy agradecido con uds. de verdad gracias.

hasta la proxima.
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 03:32.