Estoy de acuerdo filosóficamente con los carteles que dicen: "¿Por qué quieres hacer esto?" Pero también tengo a alguien pidiéndome este comportamiento, así que estoy en el mismo barco que tú.
He usado la solución de Thirster42 antes, pero eso solo funciona para mí cuando se trata de un GET, no de un POST. También parece ser específico del navegador: Firefox no enviará el formulario cuando el usuario acceda a ingresar en un cuadro de texto, pero Safari lo hará. (Firefox 3.5.3, Safari 4.0.3, MacOSX)
La mayoría de lo que he visto en la web se ve como this: "P: ¿Cómo hago esto? R: Básicamente, no es así". Creo que esto se debe a que el comportamiento no es uniforme en todas las plataformas y navegadores web, y lo que funciona para Firefox podría no funcionar para IE u Opera.Además, no puede confiar en javascript si el usuario lo ha desactivado en el navegador.
Dicho todo esto, esto es lo que hice que parece funcionar, tomando prestado de here y varios otros lugares. Probado en Firefox, Safari e Internet Explorer 8. JavaScript para cabecera:
function disableEnterKey(e)
{
var key;
if(window.event)
key = window.event.keyCode; // IE
else
key = e.which; // Firefox
if(key == 13)
return false;
else
return true;
}
Y a continuación, en cada campo de entrada:
:onKeyDown "return disableEnterKey(event);"
no me gusta mucho, pero si te hace feliz a la gente ...
¿Te refieres a
no me refiero a un cuadro de texto. Además, con el código de la pregunta anterior, no impidió que presionen Enter cuando también tenían un botón de opción seleccionado. – DForck42