Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Javascript (http://www.forosdelweb.com/f13/)
-   -   Evitar el submit de la tecla enter, en un formulario con un solo campo (http://www.forosdelweb.com/f13/evitar-submit-tecla-enter-formulario-con-solo-campo-303479/)

gabitoste 31/05/2005 09:08

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? :pensando:

JavierB 31/05/2005 09:15

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, :adios:

gabitoste 31/05/2005 10:12

Estupendo
 
Estupendo.
Sencillo y a la vez creo que ingenioso.

Gracias

:adios:

JavierB 31/05/2005 10:39

Me alegro de que te haya servido. Suelo escribir códigos sencillos porque sino KarlanKas se teletransporta hasta aquí para regañarme ;-)

Tarecito 01/07/2005 10:18

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

JavierB 02/07/2005 10:01

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, :adios:

micayael 03/10/2005 08:22

Hola. Sera que podrian explicar un poco ese codigo.

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

Gracias

JavierB 03/10/2005 08:33

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, :adios:

micayael 03/10/2005 08:53

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?

JavierB 03/10/2005 09:08

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, :adios:

micayael 03/10/2005 11:18

ok gracias.

Muy buena solucion

Puekaw 21/08/2015 10:52

Respuesta: Evitar el submit de la tecla enter, en un formulario con un solo campo
 
Gracias por la ayuda :D

Turdo 26/01/2016 19:22

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!


La zona horaria es GMT -6. Ahora son las 04:18.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.