Foros del Web » Programando para Internet » Javascript »

Evitar el submit de la tecla enter, en un formulario con un solo campo

Estas en el tema de Evitar el submit de la tecla enter, en un formulario con un solo campo en el foro de Javascript en Foros del Web. Tengo un formulario con un solo objeto, un objeto text, cuyo contenido es utilizado para modificar el contenido de una capa y renovarla. Cuando pulso ...
  #1 (permalink)  
Antiguo 31/05/2005, 09:08
Usuario no validado
 
Fecha de Ingreso: agosto-2004
Mensajes: 10
Antigüedad: 19 años, 8 meses
Puntos: 0
Pregunta Evitar el submit de la tecla enter, en un formulario con un solo campo

Tengo un formulario con un solo objeto, un objeto text, cuyo contenido es utilizado para modificar el contenido de una capa y renovarla.

Cuando pulso <enter> hace un submit y me vuelve a cargar la página, con lo que pierdo lo tecleado en el objeto text y claro no cumple su función para renovar la capa.

¿Como puedo evitar ese comportamiento el pulsar la tecla enter?
  #2 (permalink)  
Antiguo 31/05/2005, 09:15
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 gabitoste

Prueba con este código:
Código PHP:
<html>
<
head>
<
script>
function 
pulsar(e) {
  
tecla = (document.all) ? e.keyCode :e.which;
  return (
tecla!=13);
}
</script>
</head>
<body>
<form>
<input type="text" onkeypress="return pulsar(event)" />
<input type="submit" />
</form>
</body>
</html> 
Saludos,
  #3 (permalink)  
Antiguo 31/05/2005, 10:12
Usuario no validado
 
Fecha de Ingreso: agosto-2004
Mensajes: 10
Antigüedad: 19 años, 8 meses
Puntos: 0
Estupendo

Estupendo.
Sencillo y a la vez creo que ingenioso.

Gracias

  #4 (permalink)  
Antiguo 31/05/2005, 10:39
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 de que te haya servido. Suelo escribir códigos sencillos porque sino KarlanKas se teletransporta hasta aquí para regañarme
  #5 (permalink)  
Antiguo 01/07/2005, 10:18
Avatar de Tarecito  
Fecha de Ingreso: noviembre-2003
Ubicación: Lima - Perú
Mensajes: 443
Antigüedad: 20 años, 4 meses
Puntos: 1
oigan pero.... a mi no me permite hacer un submit presionando la tecla enter, y no hice nada para evitarlo, más bien al contrario, busco hacer el submit presionando enter
__________________
Tarecito
  #6 (permalink)  
Antiguo 02/07/2005, 10:01
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 Tarecito

No tienes que hacer nada, solo poner un botón submit y cuando se pulse enter en algún control del formulario será como si se pulsara.

Saludos,
  #7 (permalink)  
Antiguo 03/10/2005, 08:22
 
Fecha de Ingreso: noviembre-2003
Ubicación: Paraguay
Mensajes: 382
Antigüedad: 20 años, 4 meses
Puntos: 4
Hola. Sera que podrian explicar un poco ese codigo.

Por lo menos para no ponerlo y no entender que hace jeje.

Gracias
  #8 (permalink)  
Antiguo 03/10/2005, 08:33
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 micayael
Código PHP:
<script>
function 
pulsar(e) {
  
// averiguamos el código de la tecla pulsada (keyCode para IE y which para Firefox)
  
tecla = (document.all) ? e.keyCode :e.which;
  
// si la tecla no es 13 devuelve verdadero,  si es 13 devuelve false y la pulsación no se ejecuta
  
return (tecla!=13);
}
</script> 
Si sigues teniendo dudas sigue preguntando Saludos,
  #9 (permalink)  
Antiguo 03/10/2005, 08:53
 
Fecha de Ingreso: noviembre-2003
Ubicación: Paraguay
Mensajes: 382
Antigüedad: 20 años, 4 meses
Puntos: 4
y como sabes si es firefox o no. preguntas basicamente:

if (document.all) y eso me dice que es IE?

Y porque si retorna false no envia el formulario? es decir, que tiene que ver eso?
  #10 (permalink)  
Antiguo 03/10/2005, 09:08
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.

En efecto document.all solo lo reconoce, que yo sepa, IE. Si no es IE es el otro. He puesto que which es para Firefox porque es el navegador con el que lo he probado, aunque supongo que también servirá para Netscape (Estaría bien que alguien que tenga Opera nos diga si funciona este código)

Cita:
Y porque si retorna false no envia el formulario?
Porque he puesto en el campo de texto:

<input type="text" onkeypress="return pulsar(event)" />

Si la función retorna false es como si no hubieras pulsado enter y el formulario no se envía.

Saludos,
  #11 (permalink)  
Antiguo 03/10/2005, 11:18
 
Fecha de Ingreso: noviembre-2003
Ubicación: Paraguay
Mensajes: 382
Antigüedad: 20 años, 4 meses
Puntos: 4
ok gracias.

Muy buena solucion
  #12 (permalink)  
Antiguo 21/08/2015, 10:52
 
Fecha de Ingreso: agosto-2015
Mensajes: 1
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Evitar el submit de la tecla enter, en un formulario con un solo campo

Gracias por la ayuda :D
  #13 (permalink)  
Antiguo 26/01/2016, 19:22
Avatar de Turdo  
Fecha de Ingreso: julio-2005
Ubicación: .:Guadalajara:.
Mensajes: 398
Antigüedad: 18 años, 8 meses
Puntos: 23
Respuesta: Evitar el submit de la tecla enter, en un formulario con un solo campo

Que tal amigos del foro buscando la solución al problema de la tecla ENTER encontré este tema aquí y veo que es viejo, pero a su vez encontré otra solución en otro foro y de un anónimo. Creo que es mas practico; a mi forma de ver.

Código Java:
Ver original
  1. //Propuesta del anonimo
  2. < form id="id" name="name" onsubmit="return false;" >

La diferencia aquí es que cualquier input de tipo submit no funcionará pero se puede hacer con el método submit en el evento onClick quedando de la siguiente manera:

Código Java:
Ver original
  1. //Mi propuesta
  2. <input type="button"  value="Enviar" onClick="submit();">

Saludos colegas!
__________________
Un buen programa depende de la imaginació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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 03:16.