Foros del Web » Programando para Internet » Javascript »

Que al apretar tecla "enter" no envie form

Estas en el tema de Que al apretar tecla "enter" no envie form en el foro de Javascript en Foros del Web. Hola a todos Solo lo que dice el titulo. Tengo un formulario en una pagina con varios elemento para chekear y rellenar. Pero tocando accidentalmente ...
  #1 (permalink)  
Antiguo 10/08/2006, 04:42
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 5 meses
Puntos: 15
Que al apretar tecla "enter" no envie form

Hola a todos

Solo lo que dice el titulo.
Tengo un formulario en una pagina con varios elemento para chekear y rellenar. Pero tocando accidentalmente la tecla Enter se ejecuta la accion del form.
Como puedo hacer para anular esto. O sea , que si se presiona enter no pase nada.
  #2 (permalink)  
Antiguo 10/08/2006, 04:51
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
Pues mete en la etiqueta del form una funcion con el evento onsubmit y en la funcion pon

Código HTML:
key=(document.all) ? e.keyCode : e.which;
if (key!=13) { //Tecla q corresponde con el enter
    return true;
} else {
    return false;
}
No estoy seguro q sea totalmente correcto.
De todas formas si validas en javascript (aunque siempre haya q validar después en el servidor) puedes ir comprobando los campos uno x uno en esa función y el q esté incorrecto le pones el focus y devuelves false para q no se ejecute el submit.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #3 (permalink)  
Antiguo 10/08/2006, 06:45
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 5 meses
Puntos: 15
gracias djreficul.
He hecho esto pero me funciona a medias , me lo me explicarias un poco mas...

function NoEnter() {
key=(document.all) ? e.keyCode : e.which;
if (key!=13) { //Tecla q corresponde con el enter
return true;
} else {
return false;
}
}

y en el form puse

<form id="formularioEnvio" name="formularioEnvio" onSubmit="NoEnter" action="TouchsEstimatesF.php" method="post">

Funciona bien pero me bloquea el explorador por un instante. Y hasta que no presiono varias teclas no RESPONDE
  #4 (permalink)  
Antiguo 10/08/2006, 09:46
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
bueno, x lo pronto en el onsubmit="NoEnter" deberías poner onsubmit="return NoEnter();"

Creo q no debería bloquearte el explorador, la verdad... No he hexo muxas pruebas con dixo script. Tal vez alguien con más experiencia te pueda ayudar.

Sobre la función al key se le asigna el valor ASCII de la tecla pulsada y luego se compara con las teclas q no kieres q validen... Si haces una busqueda en google de tablas ASCII podrás ver los códigos numéricos de otras teclas para otras funciones en las q uses los eventos onkeypress, onkeyup, onkeydown.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
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:43.