SelectCampo de seleção
O campo de seleção suspensa fornece várias opções em um menu suspenso, facilitando a seleção rápida do conteúdo desejado pelo usuário.
Esta página descreve principalmente o uso do componente <mdui-select>. Para o uso dos itens do menu suspenso, consulte <mdui-menu-item>.
Como usar
Importe os componentes conforme necessário:
import 'mdui/components/select.js';
import 'mdui/components/menu-item.js';
Importe os tipos TypeScript dos componentes conforme necessário:
import type { Select } from 'mdui/components/select.js';
import type { MenuItem } from 'mdui/components/menu-item.js';
Exemplo de uso:
<mdui-select value="item-1">
<mdui-menu-item value="item-1">Item 1</mdui-menu-item>
<mdui-menu-item value="item-2">Item 2</mdui-menu-item>
</mdui-select>Suporte a seleção múltipla
O campo de seleção é de seleção única por padrão; o valor value do componente <mdui-select> é o valor value do <mdui-menu-item> atualmente selecionado.
Use o atributo multiple para permitir a seleção múltipla. Assim, o valor value do <mdui-select> será um array dos valores value dos <mdui-menu-item> atualmente selecionados.
Nota: No modo de seleção múltipla, o valor value do <mdui-select> é um array e só pode ser lido e definido por propriedades JavaScript.
Texto auxiliar
Use o atributo label para definir o texto do rótulo acima do campo de seleção.
Use o atributo placeholder para definir o texto de espaço reservado quando nenhum valor está selecionado.
Use o atributo helper para definir o texto de ajuda na parte inferior do campo de seleção. Você também pode usar o slot helper para definir o texto de ajuda.
Modo somente leitura
Use o atributo readonly para colocar o campo de seleção no modo somente leitura.
Modo desabilitado
Use o atributo disabled para desabilitar o campo de seleção.
Com limpeza
Use o atributo clearable para que, quando o campo de seleção tiver um valor, um botão de limpeza apareça no lado direito.
Você também pode personalizar o botão de limpeza pelo slot clear.
Posição do menu suspenso
Use o atributo placement para definir a posição do menu suspenso.
Texto alinhado à direita
Use o atributo end-aligned para alinhar o texto à direita.
Texto e ícones antes/depois
Defina os atributos icon e end-icon para adicionar ícones do Material Icons à esquerda e à direita do campo de seleção. Você também pode adicionar elementos pelos slots icon e end-icon.
Defina os atributos prefix e suffix para adicionar texto à esquerda e à direita do campo de seleção. Esses textos só são exibidos quando o campo de seleção está em foco ou tem um valor. Você também pode usar os slots prefix e suffix para adicionar elementos de texto.
API
Propriedades
| Atributo | Propriedade | Reflect | Tipo | Padrão |
|---|---|---|---|---|
variant | variant | 'filled' | 'outlined' | 'filled' | |
Estilo do campo de seleção. Os valores possíveis são:
| ||||
multiple | multiple | boolean | false | |
Define se suporta seleção múltipla. | ||||
name | name | string | '' | |
O nome do campo de seleção, que será enviado com os dados do formulário. | ||||
value | value | string | string[] | '' | |
O valor do campo de seleção, que será enviado com os dados do formulário. Se o atributo | ||||
defaultValue | string | string[] | '' | ||
O valor selecionado por padrão. Ao redefinir o formulário, será restaurado para este valor padrão. Esta propriedade só pode ser definida via propriedade JavaScript. | ||||
label | label | string | - | |
Texto do rótulo. | ||||
placeholder | placeholder | string | - | |
Texto de placeholder. | ||||
helper | helper | string | - | |
Texto de ajuda na parte inferior do campo de seleção. Também pode ser definido via | ||||
clearable | clearable | boolean | false | |
Define se o campo de seleção pode ser limpo. | ||||
clear-icon | clearIcon | string | - | |
Nome do ícone Material Icons para o botão de limpar, exibido à direita do campo de seleção quando ele é limpável. Também pode ser definido via | ||||
placement | placement | 'auto' | 'bottom' | 'top' | 'auto' | |
Posição do campo de seleção. Os valores possíveis são:
| ||||
end-aligned | endAligned | boolean | false | |
Define se o texto deve ser alinhado à direita. | ||||
prefix | prefix | string | - | |
Texto de prefixo do campo de seleção. Exibido apenas no estado de foco ou quando o campo de seleção tem valor. Também pode ser definido via | ||||
suffix | suffix | string | - | |
Texto de sufixo do campo de seleção. Exibido apenas no estado de foco ou quando o campo de seleção tem valor. Também pode ser definido via | ||||
icon | icon | string | - | |
Nome do ícone Material Icons para o ícone de prefixo do campo de seleção. Também pode ser definido via | ||||
end-icon | endIcon | string | - | |
Nome do ícone Material Icons para o ícone de sufixo do campo de seleção. Também pode ser definido via | ||||
error-icon | errorIcon | string | - | |
Nome do ícone Material Icons exibido à direita do campo de seleção quando a validação do campo do formulário falha. Também pode ser definido via | ||||
form | form | string | - | |
O elemento Se este atributo não for especificado, o elemento precisa ser um elemento filho de um | ||||
readonly | readonly | boolean | false | |
Define se o componente está no estado somente leitura. | ||||
disabled | disabled | boolean | false | |
Define se o componente está desabilitado. | ||||
required | required | boolean | false | |
Define se, ao enviar o formulário, é obrigatório que este campo seja preenchido. | ||||
validity | ValidityState | - | ||
Objeto que representa o estado de validação do formulário. Consulte | ||||
validationMessage | string | - | ||
Se a validação do formulário falhar, esta propriedade conterá uma mensagem de erro. Se a validação for bem-sucedida, esta propriedade será uma string vazia. | ||||
autofocus | autofocus | boolean | false | |
Define se o elemento deve receber foco automaticamente após o carregamento da página. | ||||
tabindex | tabIndex | number | - | |
A ordem do elemento ao navegar com a tecla Tab. | ||||
Métodos
| Nome | Parâmetros | Retorno |
|---|---|---|
checkValidity | boolean | |
Verifica se o campo do formulário passou na validação. Se não passou, retorna | ||
reportValidity | boolean | |
Verifica se o campo do formulário passou na validação. Se não passou, retorna Se a validação falhar, também exibe uma mensagem de erro no componente. | ||
setCustomValidity |
| void |
Define um texto de erro personalizado. Enquanto este texto não estiver vazio, indica que o campo não passou na validação. | ||
click | void | |
Simula um clique do mouse no elemento. | ||
focus |
| void |
Define o foco no elemento atual. Você pode passar um objeto como argumento, com as seguintes propriedades:
| ||
blur | void | |
Remove o foco do elemento atual. | ||
Eventos
| Nome |
|---|
focus |
Disparado ao receber foco. |
blur |
Disparado ao perder o foco. |
change |
Disparado quando o valor selecionado muda. |
invalid |
Disparado quando a validação do campo do formulário falha. |
clear |
Disparado ao clicar no botão de limpar gerado pelo atributo |
Slots
| Nome |
|---|
| (padrão) |
Elementos |
icon |
Ícone à esquerda. |
end-icon |
Ícone à direita. |
error-icon |
Ícone à direita no estado de falha de validação. |
prefix |
Texto à esquerda. |
suffix |
Texto à direita. |
clear-button |
Botão de limpar. |
clear-icon |
Ícone dentro do botão de limpar. |
helper |
Texto de ajuda na parte inferior. |
CSS Parts
| Nome |
|---|
chips |
Contêiner para os chips dos valores selecionados no modo múltiplo. |
chip |
Chip para cada valor selecionado no modo múltiplo. |
chip__button |
Elemento |
chip__label |
Texto dentro do chip. |
chip__delete-icon |
Ícone de exclusão dentro do chip. |
text-field |
Campo de texto, ou seja, o elemento |
text-field__container |
Contêiner do campo de texto dentro do text-field. |
text-field__icon |
Ícone à esquerda dentro do text-field. |
text-field__end-icon |
Ícone à direita dentro do text-field. |
text-field__error-icon |
Ícone à direita no estado de falha de validação dentro do text-field. |
text-field__prefix |
Texto à esquerda dentro do text-field. |
text-field__suffix |
Texto à direita dentro do text-field. |
text-field__label |
Texto do rótulo dentro do text-field. |
text-field__input |
Elemento |
text-field__clear-button |
Botão de limpar dentro do text-field. |
text-field__clear-icon |
Ícone dentro do botão de limpar do text-field. |
text-field__supporting |
Contêiner de informações auxiliares na parte inferior do text-field, incluindo helper e error. |
text-field__helper |
Texto de ajuda na parte inferior dentro do text-field. |
text-field__error |
Texto de descrição de erro na parte inferior dentro do text-field. |
menu |
Menu suspenso, ou seja, o elemento |