SelectSelect
El componente Select muestra varias opciones en un menú desplegable para que el usuario elija rápidamente la opción que necesita.
Esta página describe principalmente el uso del componente <mdui-select>. Para el uso de los elementos del menú desplegable, consulta <mdui-menu-item>.
Uso
Importa los componentes cuando los necesites:
import 'mdui/components/select.js';
import 'mdui/components/menu-item.js';
Importa los tipos TypeScript cuando los necesites:
import type { Select } from 'mdui/components/select.js';
import type { MenuItem } from 'mdui/components/menu-item.js';
Uso:
<mdui-select value="item-1">
<mdui-menu-item value="item-1">Elemento 1</mdui-menu-item>
<mdui-menu-item value="item-2">Elemento 2</mdui-menu-item>
</mdui-select>Soporte de selección múltiple
El Select es de selección única por defecto, y el valor de value del componente <mdui-select> es el valor del <mdui-menu-item> seleccionado actualmente.
El atributo multiple hace que el Select soporte selección múltiple. En este caso, el valor de value del <mdui-select> es un array con los valores de los <mdui-menu-item> seleccionados.
Nota: Cuando se soporta selección múltiple, el valor de value del <mdui-select> es un array y solo se puede leer y establecer mediante la propiedad JavaScript.
Texto de ayuda
El atributo label define el texto de la etiqueta sobre el Select.
El atributo placeholder define el texto de marcador de posición cuando no hay ningún valor seleccionado.
El atributo helper define el texto de ayuda en la parte inferior del Select. También puedes usar el slot helper para definirlo.
Modo de solo lectura
El atributo readonly define el Select en modo de solo lectura.
Modo deshabilitado
El atributo disabled deshabilita el Select.
Limpiable
El atributo clearable, cuando el Select tiene un valor, aparece un botón de limpiar en el lado derecho.
También puedes personalizar el botón de limpiar mediante el slot clear.
Posición del menú desplegable
El atributo placement define la posición del menú desplegable.
Texto alineado a la derecha
Con el atributo end-aligned puedes alinear el texto a la derecha.
Texto e iconos delante/detrás
Los atributos icon y end-icon permiten añadir iconos de Material Icons a la izquierda y derecha del Select. También puedes añadir elementos a la izquierda y derecha mediante los slots icon y end-icon.
Los atributos prefix y suffix permiten añadir texto a la izquierda y derecha del Select. También puedes añadir elementos de texto a la izquierda y derecha mediante los slots prefix y suffix. Estos textos solo se muestran cuando el Select está enfocado o tiene un valor.
API
Propiedades
| Atributo | Propiedad | Reflect | Tipo | Predeterminado |
|---|---|---|---|---|
variant | variant | 'filled' | 'outlined' | 'filled' | |
Estilo del Select. Los valores posibles son:
| ||||
multiple | multiple | boolean | false | |
Indica si permite selección múltiple. | ||||
name | name | string | '' | |
Nombre del Select, que se enviará con los datos del formulario. | ||||
value | value | string | string[] | '' | |
Valor del Select, que se enviará junto con los datos del formulario. Si no se especifica el atributo | ||||
defaultValue | string | string[] | '' | ||
Valor seleccionado por defecto. Al restablecer el formulario, se restaurará a este valor. Esta propiedad solo se puede establecer mediante una propiedad de JavaScript. | ||||
label | label | string | - | |
Texto de la etiqueta. | ||||
placeholder | placeholder | string | - | |
Texto de marcador de posición. | ||||
helper | helper | string | - | |
Texto de ayuda en la parte inferior del Select. También se puede establecer mediante | ||||
clearable | clearable | boolean | false | |
Indica si se puede borrar el valor del Select. | ||||
clear-icon | clearIcon | string | - | |
Nombre del icono de Material Icons para el botón de borrar que se muestra a la derecha del Select cuando es borrable. También se puede establecer mediante | ||||
placement | placement | 'auto' | 'bottom' | 'top' | 'auto' | |
Posición del Select. Los valores posibles son:
| ||||
end-aligned | endAligned | boolean | false | |
Indica si el texto está alineado a la derecha. | ||||
prefix | prefix | string | - | |
Texto de prefijo del Select. Solo se muestra cuando el Select está enfocado o tiene un valor. También se puede establecer mediante | ||||
suffix | suffix | string | - | |
Texto de sufijo del Select. Solo se muestra cuando el Select está enfocado o tiene un valor. También se puede establecer mediante | ||||
icon | icon | string | - | |
Nombre del icono de Material Icons para el icono de prefijo del Select. También se puede establecer mediante | ||||
end-icon | endIcon | string | - | |
Nombre del icono de Material Icons para el icono de sufijo del Select. También se puede establecer mediante | ||||
error-icon | errorIcon | string | - | |
Nombre del icono de Material Icons que se muestra a la derecha del Select cuando falla la validación del campo del formulario. También se puede establecer mediante | ||||
form | form | string | - | |
Elemento Si no se especifica esta propiedad, el elemento debe ser hijo de un elemento | ||||
readonly | readonly | boolean | false | |
Indica si está en estado de solo lectura. | ||||
disabled | disabled | boolean | false | |
Indica si está deshabilitado. | ||||
required | required | boolean | false | |
Indica si es obligatorio completar este campo al enviar el formulario. | ||||
validity | ValidityState | - | ||
Objeto de estado de validación del formulario, véase | ||||
validationMessage | string | - | ||
Si falla la validación del formulario, esta propiedad contendrá un mensaje informativo. Si la validación es correcta, esta propiedad será una cadena vacía. | ||||
autofocus | autofocus | boolean | false | |
Indica si el componente debe recibir el foco automáticamente cuando la página termine de cargar. | ||||
tabindex | tabIndex | number | - | |
Orden del elemento al navegar con la tecla Tab. | ||||
Métodos
| Nombre | Parámetros | Valor de retorno |
|---|---|---|
checkValidity | boolean | |
Comprueba si el campo del formulario pasa la validación. Si falla, devuelve | ||
reportValidity | boolean | |
Comprueba si el campo del formulario pasa la validación. Si falla, devuelve Si la validación falla, también muestra un mensaje de error en el componente. | ||
setCustomValidity |
| void |
Establece un mensaje de error personalizado. Si este mensaje no está vacío, indica que el campo no ha pasado la validación. | ||
click | void | |
Simula un clic del ratón en el elemento. | ||
focus |
| void |
Establece el foco en el elemento actual. Puede pasarse un objeto como parámetro con las siguientes propiedades:
| ||
blur | void | |
Quita el foco del elemento actual. | ||
Eventos
| Nombre |
|---|
focus |
Se dispara cuando recibe el foco. |
blur |
Se dispara cuando pierde el foco. |
change |
Se dispara cuando cambia el valor seleccionado. |
invalid |
Se dispara cuando falla la validación del campo del formulario. |
clear |
Se dispara al hacer clic en el botón de borrar generado por el atributo |
Slots
| Nombre |
|---|
| (predeterminado) |
Elementos |
icon |
Icono izquierdo. |
end-icon |
Icono derecho. |
error-icon |
Icono derecho en estado de error de validación. |
prefix |
Texto izquierdo. |
suffix |
Texto derecho. |
clear-button |
Botón de borrar. |
clear-icon |
Icono dentro del botón de borrar. |
helper |
Texto de ayuda en la parte inferior. |
CSS Parts
| Nombre |
|---|
chips |
Contenedor para los chips correspondientes a los valores seleccionados en selección múltiple. |
chip |
Chip correspondiente a cada valor seleccionado en selección múltiple. |
chip__button |
Elemento |
chip__label |
Texto dentro del chip. |
chip__delete-icon |
Icono de eliminar dentro del chip. |
text-field |
Campo de texto, es decir, el elemento |
text-field__container |
Contenedor del campo de texto dentro de text-field. |
text-field__icon |
Icono izquierdo dentro de text-field. |
text-field__end-icon |
Icono derecho dentro de text-field. |
text-field__error-icon |
Icono derecho en estado de error de validación dentro de text-field. |
text-field__prefix |
Texto izquierdo dentro de text-field. |
text-field__suffix |
Texto derecho dentro de text-field. |
text-field__label |
Texto de la etiqueta dentro de text-field. |
text-field__input |
Elemento |
text-field__clear-button |
Botón de borrar dentro de text-field. |
text-field__clear-icon |
Icono dentro del botón de borrar en text-field. |
text-field__supporting |
Contenedor de información auxiliar inferior dentro de text-field, que incluye helper y error. |
text-field__helper |
Texto de ayuda inferior dentro de text-field. |
text-field__error |
Texto de descripción de error inferior dentro de text-field. |
menu |
Menú desplegable, es decir, el elemento |