Foros del Web » Programando para Internet » Javascript »

Bloquear Enter de un solo componente

Estas en el tema de Bloquear Enter de un solo componente en el foro de Javascript en Foros del Web. Hola Bueno en realidad son 2 problemas en uno 1.- Tengo un input y deseo que al presionar enter me capture el evento , Facil ...
  #1 (permalink)  
Antiguo 07/07/2005, 11:19
 
Fecha de Ingreso: octubre-2004
Mensajes: 143
Antigüedad: 19 años, 6 meses
Puntos: 0
Bloquear Enter de un solo componente

Hola

Bueno en realidad son 2 problemas en uno

1.- Tengo un input y deseo que al presionar enter me capture el evento , Facil ??Este es el codigo y NO RESULTA

input (SE GENERA dinamicamente con javascript
Código:
 
   tabla+= "<input type=text value=\"" + desc +"\" id=descuento size=5 ";
   tabla+= " onkeypress=\"javascript:calcular_desc();\"></b></td>" ;
La funcion calcular_des()

Código:
function calcular_desc()
{
   alert('antes');
   tecla=(document.all) ? e.keyCode : e.which;
   if(tecla==13) return false;
    alert ('jota'); //document.getElementById("trabajos").innerHTML = generar_trabajos_memoria();
}
si se dan cuenta estoy probando que poasa y no pasa nada (en firefox por lo menos que es donde mas me interesa, en iexplorer funca)

2.- Cuando presione enter queiro que ejecute la accion indicada en comentarios, pero que no haga un submit del formulario..

La idea no es modificar el <form action=""> osea , es solo que ese evento no lo produsca...

Se entiende.. miren que me falta eso..

Gracias
Saludos
  #2 (permalink)  
Antiguo 07/07/2005, 11:24
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola jotamachuca

Prueba poniendolo así:
Código:
 tabla+= "<input type=text value=\"" + desc +"\" id=descuento size=5 ";
   tabla+= " onkeypress=\"return calcular_desc();\"></b></td>" ;
Saludos,
  #3 (permalink)  
Antiguo 07/07/2005, 11:56
 
Fecha de Ingreso: octubre-2004
Mensajes: 143
Antigüedad: 19 años, 6 meses
Puntos: 0
No pasa nada



Al final el codigo quedó asi

El codigo del input
Código:
   tabla+= "<input type=text value=\"" + desc +"\" id=descuento size=5 ";
   tabla+= " onkeypress=\"return calcular_desc();\"></b></td>" ;
y el metodo calcular_desc()
Código:
function calcular_desc()
{
   tecla=(document.all) ? e.keyCode : e.which;
   if(tecla==13)
      alert ('jota'); //document.getElementById("trabajos").innerHTML = generar_trabajos_memoria();
   return false;
}
Pero no funciona ni en explorer, ni en Firefox lo del enter, o sea cuando presiono el enter, recarga la pagina, y lo que quiero es que se despliegue el alert('jota'); y no me refresque la pagina
  #4 (permalink)  
Antiguo 07/07/2005, 12:20
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

Se me/nos han pasado algunos detalles:

onkeypress=\"return calcular_desc(event);\"

Código:
function calcular_desc(e) {
   tecla=(document.all) ? e.keyCode : e.which;
   if(tecla==13) {
      alert ('jota');
       return false;
   }
}
A ver si ahora va bien. Saludos,
  #5 (permalink)  
Antiguo 07/07/2005, 12:34
 
Fecha de Ingreso: octubre-2004
Mensajes: 143
Antigüedad: 19 años, 6 meses
Puntos: 0
SIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII

FUNCIONO.... GRANDE PAPA

aunque tuve que hacer una leve modificacion

Código:
function calcular_desc( e )
{
   tecla=(document.all) ? e.keyCode : e.which;
   if(tecla==13)
   {
      alert ('jota'); //document.getElementById("trabajos").innerHTML = generar_trabajos_memoria();
      return false;
   }
}
ya que si debaja el return false fuera, no capturaba la presion de las teclas, y no aparecia nada

Gracias, me tenia enfermo ese problema
  #6 (permalink)  
Antiguo 07/07/2005, 12:37
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Me alegro mucho de que ya estés sano Hasta pronto
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 00:44.