2011-06-11 9 views
9

¿Alguien puede explicar este comportamiento? Al presionar la tecla Intro en el cuadro de texto de un formulario HTML, se envía el formulario cuando el formulario contiene un cuadro de texto único, pero no cuando el formulario contiene dos o más cuadros de texto.Al presionar Enter submits el formulario HTML con una entrada, pero no dos

jsFiddle (una entrada): http://jsfiddle.net/gpPTa/
jsFiddle (dos entradas): http://jsfiddle.net/fDbJt/

+0

duplicado posible de [? ¿Por qué un formulario con una entrada de texto presente en entrar mientras que uno con dos entradas de texto no] (http://stackoverflow.com/questions/17797025/why- does-a-form-with-one-text-input-submit-on-enter-while-one-with-two-text-inpu) – Pang

Respuesta

0

Parece que el navegador asume que, dado que sólo hay una entrada, sino que también es el control presentar. Centrándose en él y presionando Enter enviará el formulario, de la misma manera en que se enfocará en un botón de envío.

Cuando agrega type="submit" a uno de los <inputs>, puede usar tantos otros como desee y el form will be submitted by pressing enter.

No tengo ninguna referencia para respaldar esto, pero me parece lógico.

+0

Este comportamiento me parece demasiado inconsistente. Puedo ver por qué presionar enter en la planta '' envía el formulario, porque es el único elemento de formulario con el que interactuar. Pero no veo por qué presionar Enter en uno '' envía el formulario si un '' diferente contiene 'type =" submit "'. Me pregunto si hay una especificación que proporcione el fundamento de este comportamiento. – thinkterry

3

Lamentablemente, es un formulario predeterminado para enviar al ingresar con solo una entrada.

Puede darles a cada uno de ellos un comando de javascript que envía el formulario o colocar un botón de envío con ancho: 0 y/o visibilidad: ninguno. Por ejemplo:

<form> 
    <input style='width:0; visibility:hidden' type='submit'> 
    <input> 
    <input> 
</form> 
Cuestiones relacionadas