È markup valido ed è valido per le specifiche HTML / HTTP? Se volessi avere
<form>
<input name="email" />
<input name="email" />
<input name="email" />
</form>
è valido?
È markup valido ed è valido per le specifiche HTML / HTTP? Se volessi avere
<form>
<input name="email" />
<input name="email" />
<input name="email" />
</form>
è valido?
Risposte:
Come indicato su SO :
I browser ci stanno bene. Tuttavia, il modo in cui la libreria dell'applicazione analizza può variare.
I programmi dovrebbero raggruppare elementi identici. Mentre la specifica HTML non lo dice esplicitamente, è implicitamente dichiarata nella documentazione sulle caselle di controllo:
"Diverse caselle di controllo in un modulo possono condividere lo stesso nome di controllo. Pertanto, ad esempio, le caselle di controllo consentono agli utenti di selezionare più valori per la stessa proprietà."
In una nota a margine, in PHP puoi avere campi modulo con lo stesso nome se usi la sintassi arry di PHP per il nome del campo:
<form>
<input name="email[]" />
<input name="email[]" />
<input name="email[]" />
</form>
Questo farà sì che il browser di inviare più i campi del modulo in una sintassi che PHP userà per compilare una matrice per questi campi: $_REQUEST['email']
. Se usi PHP questo è il modo preferito di gestirlo.
HTML5
La sezione non normativa 4.10.1.3 La configurazione di un modulo per comunicare con un server afferma esplicitamente che è valido:
Più controlli possono avere lo stesso nome; ad esempio, qui diamo a tutte le caselle lo stesso nome e il server distingue quale casella è stata selezionata vedendo quali valori vengono inviati con quel nome - come i pulsanti di opzione, vengono anche assegnati valori univoci con l'attributo value.
La versione normativa di questo è semplicemente che non è vietata da nessuna parte, e l'algoritmo di invio del modulo dice esattamente quale richiesta dovrebbe essere generata:
application/x-www-form-urlencoded
loop sopra il "set di dati del modulo" e sputare più key=val
https://www.w3.org/TR/html5/forms.html#url-encoded-form-data