Checkbox

A entrada checkbox utiliza o checkbox input nativo do HTML. Ela pode exibir uma ou muitas opções para um usuário e é uma ótima maneira de permitir que os usuários selecionem vários itens de uma lista. O FormKit suporta tanto entradas de checkbox únicas quanto múltiplas.

Checkbox único

Por padrão, o tipo checkbox renderizará um único checkbox e usa valores booleanos. Para que um único checkbox seja marcado — o valor atual da entrada deve corresponder ao on-value dessa entrada (por padrão, um único checkbox usa true como o on-value).

Carregar exemplo ao vivo
Atributo Checked Desnecessário

Para melhorar a consistência da API em todas as entradas do FormKit — o FormKit usa o value como o estado inicial da entrada. A propriedade/atributo checked não deve ser usado diretamente.

Múltiplos checkboxes

Para exibir múltiplos checkboxes com uma única entrada, use a propriedade options. As opções podem ser especificadas de 3 maneiras:

  • Um array de strings
  • Um objeto de pares valor/rótulo
  • Um array de objetos com propriedades label e value (o mesmo que as entradas select e radio)

O valor de uma entrada de checkbox com múltiplas options é um array dos valores selecionados.

Array de strings

A maneira mais simples de fornecer opções é um array de strings. As strings fornecidas serão usadas tanto para o rótulo quanto para o valor da opção.

Carregar exemplo ao vivo

Objeto Valor / Rótulo

Você também pode fornecer a propriedade options onde as chaves são valores e os valores de cada propriedade são rótulos.

Carregar exemplo ao vivo

Array de objetos

A maneira mais flexível de definir opções é fornecendo um array de objetos. Os objetos devem incluir as propriedades value e label — mas também podem incluir uma propriedade help bem como um objeto attrs de atributos adicionais a serem aplicados a cada tag de entrada de checkbox.

Carregar exemplo ao vivo

Props & Atributos

PropTypePadrãoDescrição
decorator-iconString’’Especifica um ícone para colocar na seção decoratorIcon. Aparece quando a caixa de seleção está marcada. O padrão é o ícone checkboxDecorator.
optionsArray/Object[]Um objeto de pares valor/rótulo ou um array de strings, ou um array de objetos que devem conter uma propriedade de rótulo e valor.
on-valueanytrueO valor quando a caixa de seleção está marcada (apenas caixas de seleção únicas).
off-valueanyfalseO valor quando a caixa de seleção está desmarcada (apenas caixas de seleção únicas).
Mostrar Universal props
configObject{}Opções de configuração a serem fornecidas para o nó do input e qualquer nó descendente deste input.
delayNumber20Número de milissegundos para debounce do valor do input antes de despachar o commit hook.
dirtyBehaviorstringtouchedDetermina como o indicador "dirty" deste input é definido. Pode ser configurado como touched ou compare - touched (o padrão) é mais performático, mas não detectará quando o formulário corresponder novamente ao seu estado inicial.
errorsArray[]Array de strings para exibir como mensagens de erro neste campo.
helpString''Texto para o texto de ajuda associado ao input.
idStringinput_{n}O ID único do input. Fornecer um ID também permite acesso global ao nó do input.
ignoreBooleanfalseImpede que um input seja incluído em qualquer pai (grupo, lista, formulário etc). Útil ao usar inputs para a interface do usuário em vez de valores reais.
indexNumberundefinedPermite que um input seja inserido no índice fornecido, se o pai for uma lista. Se o valor do input for indefinido, ele herda o valor dessa posição de índice. Se ele tiver um valor, ele o insere nos valores da lista no índice fornecido.
labelString''Texto para o elemento label associado ao input.
nameStringinput_{n}O nome do input como identificado no objeto de dados. Isso deve ser único dentro de um grupo de campos.
parentFormKitNodecontextualPor padrão, o pai é um grupo, lista ou formulário de envolvimento, mas essa prop permite a atribuição explícita do nó pai.
prefix-iconString''Especifica um ícone para colocar na seção prefixIcon.
preservebooleanfalsePreserva o valor do input em um grupo pai, lista ou formulário quando o input é desmontado.
preserve-errorsbooleanfalsePor padrão, os erros definidos em inputs usando setErrors são automaticamente limpos no input. Definir essa prop como true mantém o erro até que ele seja explicitamente limpo.
sections-schemaObject{}Um objeto de chaves de seção e valores parciais de esquema, em que cada esquema parcial é aplicado à seção respectiva.
suffix-iconString''Especifica um ícone para colocar na seção suffixIcon.
typeStringtextO tipo de input a ser renderizado pela biblioteca.
validationString, Array[]As regras de validação a serem aplicadas ao input.
validation-visibilityStringblurDetermina quando mostrar as regras de validação com falha de um input. Os valores válidos são blur, dirty e live.
validation-labelString{label prop}Determina qual rótulo usar nas mensagens de erro de validação, por padrão, usa a propriedade label, se disponível, caso contrário, usa a propriedade name.
validation-rulesObject{}Regras de validação personalizadas adicionais para disponibilizar na propriedade de validação.
valueAnyundefinedInicializa o valor do input e/ou de seus filhos. Não é reativo. Pode inicializar grupos inteiros (formulários) e listas..

Seções

A entrada de caixa de seleção tem uma construção diferente dependendo se é uma caixa de seleção única ou múltipla.

Você pode direcionar uma seção específica de uma entrada usando a "key" dessa seção, permitindo que você modifique as classes, HTML (por meio de :sections-schema ou o conteúdo (por meio de slots) dessa seção). Saiba mais sobre as seções aqui.

Diagrama de caixa de seleção única

Eu gostaria de uma camiseta grátis
Nós enviaremos uma camiseta grátis se você tiver esta caixa selecionada.
Você deve fazer uma seleção.

Diagrama de caixa de seleção múltipla

Tópicos
Escolha os tópicos que você gostaria de aprender este ano.
Jardinagem
Estaremos estudando solo, plantas e estações.
Você deve fazer uma seleção.
Section-keyDescrição
decoratorResponsável pelo elemento imediatamente após o elemento de entrada — geralmente usado para estilizar caixas de seleção personalizadas.
decoratorIconUm elemento contendo o ícone do decorador.
legendResponsável pelo elemento de legenda do fieldset.
fieldsetResponsável pelo fieldset quando várias opções estão disponíveis.
optionResponsável pelo wrapper em torno de cada item nas opções.
optionsResponsável pelo elemento wrapper em torno de todos os itens de opção.
Mostrar Universal section keys
outerO elemento de envolvimento mais externo.
wrapperUm invólucro ao redor do rótulo e do input.
labelO rótulo do input.
prefixPor padrão, não gera saída, mas permite conteúdo diretamente antes de um elemento input.
prefixIconUm elemento para gerar um ícone antes da seção de prefixo.
innerUm invólucro ao redor do próprio elemento input.
suffixPor padrão, não gera saída, mas permite conteúdo diretamente após um elemento input.
suffixIconUm elemento para gerar um ícone após a seção de sufixo.
inputO próprio elemento input.
helpO elemento que contém o texto de ajuda.
messagesUm invólucro ao redor de todas as mensagens.
messageO elemento (ou muitos elementos) que contém uma mensagem - na maioria das vezes mensagens de validação e erros.

Acessibilidade

Todos os campos de entrada do FormKit são projetados levando em consideração as seguintes considerações de acessibilidade. Ajude-nos a melhorar continuamente a acessibilidade para todos, relatando problemas de acessibilidade aqui:

Marcação semânticaAtributos AriaAcessível por tecladoIndicadores de focoContraste de cores com o tema fornecidoEtiquetas acessíveis, texto de ajuda e erros

Caixa de seleção única

Chave de SeçãoAtributoPadrãoDescrição
decoratoraria-hiddentrueOculta o decorador dos leitores de tela.
Mostrar Universal chave de seção
labellabelforAssocia isso a um elemento de entrada, aprimorando acessibilidade e experiência do usuário
inputinputdisabledDesabilita um elemento HTML, impedindo a interação do usuário e sinalizando um estado não interativo
aria-describedbyAprimora a acessibilidade associando um elemento a uma descrição, auxiliando leitores de tela
aria-requiredAdiciona o estado necessário quando a validação é exigida.
iconiconforSempre que um ícone é definido como rótulo, ele o vincula a um elemento de entrada, aprimorando acessibilidade e experiência do usuário

Caixa de seleção múltipla

Chave de SeçãoAtributoPadrãoDescrição
fieldsetaria-describedbyAssocia um elemento com uma descrição, auxiliando os leitores de tela.
decoratoraria-hiddentrueOculta o decorador dos leitores de tela.
Mostrar Universal chave de seção
labellabelforAssocia isso a um elemento de entrada, aprimorando acessibilidade e experiência do usuário
inputinputdisabledDesabilita um elemento HTML, impedindo a interação do usuário e sinalizando um estado não interativo
aria-describedbyAprimora a acessibilidade associando um elemento a uma descrição, auxiliando leitores de tela
aria-requiredAdiciona o estado necessário quando a validação é exigida.
iconiconforSempre que um ícone é definido como rótulo, ele o vincula a um elemento de entrada, aprimorando acessibilidade e experiência do usuário

Interações com o Teclado

Evento de TecladoDescrição
SpacePermite alternar a caixa de seleção sempre que o campo de entrada estiver em foco.
Mostrar Universal evento de teclado
TabMove o foco para a próxima entrada focalizável na página.
Shift + TabMove o foco para a entrada focalizável anterior na página.