2011-01-28 12 views
6

Este es un tema bastante simple de describir. Esto fue probado en Firefox (3.6), IE (8) y Chrome (8).Formulario que no se envía cuando hay más de un texto de entrada

Aquí está el archivo doesnotsubmit.html

<form> 
    <input /> 
    <input /> 
</form> 

Cuando la atención se centra en una de las entradas y pulsar Intro, no pasa nada.

A continuación se muestra el archivo doessubmit.html

<form> 
    <input /> 
</form> 

Cuando el foco está en la entrada y pulsar Intro, se envía el formulario.

¿Alguna idea sobre este comportamiento incoherente?

Sé que el formulario carece de un botón de envío, y por lo tanto no es semánticamente correcto. De todos modos, el proceso de envío estaba destinado a ser manejado automáticamente a través de los botones de jQuery dialogs buttonpane, y no sabría cómo colocar un < input type adicional = "submit"/>.

+0

Si tuviera que adivinar, diría "no enviar" que se deseaba comportamiento, pero añadieron una excepción a un formulario con una entrada para el bien de los sitios web con campos de búsqueda (que este es su patrón típico). Aunque realmente estoy especulando aquí ... –

+0

Bueno, la idea es [aquí] (http://stackoverflow.com/questions/1370021/enter-key-on-a-form-with-a-single-input- field-will-automatically-submit-with-get/1370314 # 1370314), vea el enlace al HTML Spec – user754151

Respuesta

1

user754151 es correcto. Este es un error conocido, pero supongo que puedes deshacerte de él simplemente interceptando el evento Enter keypress.

1

Existen dos soluciones posibles para este problema.

  1. La solución más simple es agregar 1 campo de entrada más que no será visible para el usuario.

  2. puede vincular el evento de selección de ese campo de entrada, y en esa función simplemente marque keyCode == 13 then preventDefault().

Cuestiones relacionadas