2011-06-11 9 views
9

Qualcuno può spiegare questo comportamento? Premendo il tasto Invio nella casella di testo di un modulo HTML, il modulo viene inviato quando il modulo contiene una singola casella di testo, ma non quando il modulo contiene due o più caselle di testo.La pressione di invio invia il modulo HTML con un input, ma non due

jsFiddle (un ingresso): http://jsfiddle.net/gpPTa/
jsFiddle (due ingressi): http://jsfiddle.net/fDbJt/

+0

Eventuali duplicati di [? Perché un FORM con INPUT un testo presentare il entrare, mentre uno con due ingressi testo non] (http://stackoverflow.com/questions/17797025/why- fa-a-modulo-con-un-testo-input-submit-on-enter-while-one-with-two-text-inpu) – Pang

risposta

0

Sembra che il browser presuppone che, poiché v'è un solo ingresso, è anche il controllo di invio. Concentrandosi su di esso e premendo invio verrà inviato il modulo, allo stesso modo in cui si concentrerà la messa a fuoco su un pulsante di invio.

Quando si aggiunge type="submit" a uno degli <inputs>, è possibile utilizzare tutti gli altri che si desiderano e lo form will be submitted by pressing enter.

Non ho alcun riferimento a questo, ma mi sembra logico.

+0

Questo comportamento sembra troppo incoerente per me. Riesco a capire perché premendo enter sulla sola "" si invii il modulo, perché è l'unico elemento di forma con cui interagire. Ma non vedo perché premendo enter su uno '' invia il modulo se un diverso '' contiene 'type =" submit "'. Mi chiedo se c'è una specifica che fornisce la logica dietro questo comportamento. – thinkterry

3

Sfortunatamente è un valore predefinito per il modulo da inviare al momento dell'inserimento con un solo input.

È possibile assegnare a ciascuno di essi un comando javascript che inoltra il modulo oppure posizionare un pulsante di invio con larghezza: 0 e/o visibilità: nessuno. Per esempio:

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