¿Es válido tener múltiples elementos de entrada de formulario con el mismo nombre?


11

¿Es un marcado válido y es válido para la especificación HTML / HTTP? Si quisiera tener

<form>
<input name="email" />
<input name="email" />
<input name="email" />
</form>

es eso valido?


Por definición, los botones de radio en el mismo grupo tienen el mismo nombre.
MrWhite

Respuestas:


9

Como se indica en SO :

Los navegadores están de acuerdo. Sin embargo, la forma en que la biblioteca de aplicaciones analiza puede variar.

Se supone que los programas agrupan elementos con nombres idénticos. Si bien la especificación HTML no dice esto explícitamente, se indica implícitamente en la documentación de las casillas de verificación:

"Varias casillas de verificación en un formulario pueden compartir el mismo nombre de control. Así, por ejemplo, las casillas de verificación permiten a los usuarios seleccionar varios valores para la misma propiedad".

Como nota al margen, en PHP puede tener campos de formulario con el mismo nombre si usa la sintaxis arry de PHP para el nombre del campo:

<form>
<input name="email[]" />
<input name="email[]" />
<input name="email[]" />
</form>

Esto hará que el navegador para enviar a través de los campos de formulario en una sintaxis que PHP usará para rellenar una matriz para estos campos: $_REQUEST['email']. Si usa PHP, esta es la forma preferida de manejarlo.


5

HTML5

La sección no normativa 4.10.1.3 Configuración de un formulario para comunicarse con un servidor dice explícitamente que es válido:

Múltiples controles pueden tener el mismo nombre; por ejemplo, aquí asignamos el mismo nombre a todas las casillas de verificación, y el servidor distingue qué casilla de verificación se verificó al ver qué valores se envían con ese nombre; como los botones de opción, también se les dan valores únicos con el atributo de valor.

La versión normativa de esto es simplemente que no está prohibido en ninguna parte, y el algoritmo de envío de formularios dice exactamente qué solicitud se debe generar:

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.