Por qué es que un <form>
con una sola <input>
campo provocará que se recargue el formulario cuando el usuario introduce un valor y presiona el Introduzca, y no lo hace si hay 2 o más campos en el <form>
?¿Por qué formularios con solo campo de entrada se someten al presionar la tecla enter en la entrada
Escribí simple page para probar esta rareza.
Si ingresa un valor en el segundo formulario y presiona Intro, verá que vuelve a cargar la página pasando el valor ingresado como si llamara al GET
. ¿por qué? y como lo evito?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>testFormEnter</title>
</head>
<body>
<form>
<input type="text" name="partid2" id="partid2" />
<input type="text" name="partdesc" id="partdesc" />
</form>
<p>2 field form works fine</p>
<form>
<input type="text" name="partid" id="partid" />
</form>
<p>One field form reloads page when you press the Enter key why</p>
</body>
</html>
Gracias, ojalá estuviera documentado en alguna parte. Perdí horas depurando una página grande pensando que era algo más, atado a mi ajax. Solo descubrí el "capricho" después de extraer el código y comencé a eliminar línea tras línea. ¡Qué pérdida de tiempo! – sdfor
Y tienes razón, es una solución fácil con un campo oculto. Por cierto, si afecta a firefox 3.5.2. Tal vez se considera una característica. – sdfor
Ah sí, siento tu dolor ... así es como me enteré, digamos 5-6 años atrás ... –