Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.
HTML el atributo: multiple
El atributo booleanomultiple, si se establece, significa que el control del formulario acepta uno o más valores. Válido para los<input>s de tipoemail,file y<select>, la forma en que el usuario opta por valores múltiples depende del control del formulario.
Dependiendo del tipo, el control de formulario puede tener una apariencia diferente si se establece el atributomultiple. Para el<input> de tipofile, la mensajería nativa que proporciona el navegador es diferente. En Firefox, el<input> de tipofile dice "Ningún archivo seleccionado" cuando el atributo está presente y "Ningún archivo seleccionado", cuando no hay archivo seleccionado. La mayoría de los navegadores muestran un cuadro de lista de desplazamiento para un control<select> con el atributomultiple establecido frente a un menú desplegable de una sola línea cuando se omite el atributo. El<input>email muestra lo mismo, pero coincidirá con la pseudoclase:invalid si hay más de una dirección de correo electrónico separada por comas incluido si el atributo no está presente.
Cuando se establecemultiple en el tipo de entradaemail, el usuario puede incluir cero (si no esrequired también), una o más direcciones de correo electrónico separadas por comas.
<input type="email" multiple name="emails" />Si y solo si se especifica el atributomultiple, el valor puede ser una lista de direcciones de correo electrónico separadas por comas y formadas correctamente. Los espacios en blanco iniciales y finales se eliminan de cada dirección de la lista.
Cuando se establecemultiple en el tipo de entradafile, el usuario puede seleccionar uno o más archivos. El usuario puede elegir varios archivos del selector de archivos de cualquier manera que la plataforma elegida lo permita (por ejemplo, manteniendo presionada la teclaMayús oControl y luego haciendo clic).
<input type="file" multiple name="uploads" />Cuando se omite el atributo, el usuario solo puede seleccionar un único archivo por<input>.
El atributomultiple en el elemento<select> representa un control para seleccionar cero o más opciones de la lista. De lo contrario, el elemento<select> representa un control para seleccionar una única<option> de la lista de opciones.
<select multiple name="drawfs"> <option>Gruñón</option> <option>Feliz</option> <option>Dormilón</option> <option>Tímido</option> <option>Estornudo</option> <option>Tontín</option> <option>Doc</option></select>Cuando se especificamultiple, la mayoría de los navegadores mostrarán un cuadro de lista de desplazamiento en lugar de un menú desplegable de una sola línea.
In this article
Ejemplos
>input para correoᵉ
<label for="emails">¿A quién deseas enviar un correo electrónico?</label><input type="email" multiple name="emails" list="drawfemails" required size="64" /><datalist> <option value="gruñón@woodworkers.com">Gruñón</option> <option value="feliz@woodworkers.com">Feliz</option> <option value="dormilón@woodworkers.com">Dormilón</option> <option value="tímido@woodworkers.com">Tímido</option> <option value="estornudo@woodworkers.com">Estornudo</option> <option value="tontín@woodworkers.com">Tontín</option> <option value="doc@woodworkers.com">Doc</option></datalist>input:invalid { border: red solid 3px;}Si y solo si se especifica el atributomultiple, el valor puede ser una lista de direcciones de correo electrónico separadas por comas y formadas correctamente. Los espacios en blanco iniciales y finales se eliminan de cada dirección de la lista. Si el atributorequired está presente, se requiere al menos una dirección de correo electrónico.
Algunos navegadores admiten la aparición de lalista de opciones del<datalist> para direcciones de correo electrónico posteriores cuando haya varias. Otros no lo hacen.
input de tipofile
Cuando se establecemultiple en el<input> de tipofile, el usuario puede seleccionar uno o más archivos:
<form method="post" enctype="multipart/form-data"> <p> <label for="uploads"> Elige las imágenes que deseas cargar: </label> <input type="file" name="uploads" accept=".jpg, .jpeg, .png, .svg, .gif" multiple /> </p> <p> <label for="text">Elige un archivo de texto para cargar: </label> <input type="file" name="text" accept=".txt" /> </p> <p> <input type="submit" value="Enviar" /> </p></form>Nota la diferencia en la apariencia entre el ejemplo conmultiple establecido y el otro<input> sinfile.
Cuando se envía el formulario, utilizas elmethod='get' el nombre de cada archivo seleccionado se habría agregado a los parámetros de la URL como?uploads=img1.jpg&uploads=img2.svg. Sin embargo, dado que estamos asumiendo datos de formularios demultipart, usamos mucho elpost. Consulta el elemento<form> yenvío de datos del formulario para obtener más información.
select
El atributomultiple en el elemento<select> representa un control para seleccionar cero o más opciones de la lista. De lo contrario, el elemento<select> representa un control para seleccionar una única<option> de la lista de opciones. El control generalmente tiene una apariencia diferente en función de la presencia del atributomultiple, y la mayoría de los navegadores muestran un cuadro de lista de desplazamiento en lugar de una lista desplegable de una sola línea cuando el atributo está presente.
<form method="get" action="#"> <p> <label for="dwarfs">Selecciona los leñadores que te gusten:</label> <select multiple name="drawfs"> <option>gruñón@woodworkers.com</option> <option>feliz@woodworkers.com</option> <option>dormilón@woodworkers.com</option> <option>tímido@woodworkers.com</option> <option>estornudo@woodworkers.com</option> <option>tontín@woodworkers.com</option> <option>doc@woodworkers.com</option> </select> </p> <p> <label for="favoriteOnly">Selecciona tu favorito:</label> <select name="favoriteOnly"> <option>gruñón@woodworkers.com</option> <option>feliz@woodworkers.com</option> <option>dormilón@woodworkers.com</option> <option>tímido@woodworkers.com</option> <option>estornudo@woodworkers.com</option> <option>tontín@woodworkers.com</option> <option>doc@woodworkers.com</option> </select> </p> <p> <input type="submit" value="Enviar" /> </p></form>Ten en cuenta la diferencia de apariencia entre los dos controles de formulario.
/* descomenta este CSS para que el multiple tenga la misma altura que single *//*select[multiple] { height: 1.5em; vertical-align: top;}select[multiple]:focus,select[multiple]:active { height: auto;}*/Hay varias formas de seleccionar varias opciones en un elemento<select> con un atributomultiple. Dependiendo del sistema operativo, los usuarios del ratón pueden mantener presionadas las teclasCtrl,Comando oMayús y luego hacer clic en varias opciones para seleccionarlas o deseleccionarlas. Los usuarios de teclado pueden seleccionar varios elementos contiguos centrándose en el elemento<select>, seleccionando un elemento en la parte superior o inferior del rango que desean seleccionar usandoArriba yTeclas del cursor hacia abajo para subir y bajar las opciones. La selección de elementos no contiguos no es tan compatible: los elementos se deben poder seleccionar y deseleccionar presionandoEspacio, pero el soporte varía entre los navegadores.
Especificaciones
| Specification |
|---|
| HTML> # attr-input-multiple> |
| HTML> # attr-select-multiple> |
Problemas de accesibilidad
Proporciona instrucciones para ayudar a los usuarios a comprender cómo completar el formulario y utilizar controles de formulario individuales. Indica cualquier entrada requerida y opcional, formatos de datos y otra información relevante. Cuando utilices el atributomultiple, informa al usuario que se permiten múltiples valores y proporciona instrucciones sobre cómo proveer más valores, como "direcciones de correo electrónico separadas con una coma".
Configurarsize="1" en una selección múltiple puedes hacer que aparezca como una única selección en algunos navegadores, pero luego no se expande en el enfoque, lo que perjudica la usabilidad. No hagas eso. Si cambias la apariencia de unselect, e incluso si no lo haces, asegúrate de informar al usuario que se puede seleccionar más de una opción mediante otro método.