Skip to content

DsSelect

Velger med nedtrekksliste.

Bruk

Når bør du bruke DsSelect?

  • Når brukeren skal velge ett alternativ fra en forhåndsdefinert liste.
  • Når listen inneholder mer enn 5 alternativer, slik at radioknapper ville ta for mye plass.
  • I skjemaer der valg blant standardiserte verdier er nødvendig (f.eks. fylke, land).

Når bør du unngå DsSelect?

  • Når det er færre enn 4 alternativer. Bruk radioknapper i stedet for bedre oversikt.
  • Når brukeren skal kunne skrive inn egne verdier. Bruk et tekstfelt med autofullfør i stedet.

Eksempler

Grunnleggende bruk

DsSelect — interaktiv forhåndsvisning
Åpne i nytt vindu ↗
dart
DsSelect<String>(
  options: const [
    DsSelectOption(value: 'oslo', label: 'Oslo'),
    DsSelectOption(value: 'vestland', label: 'Vestland'),
    DsSelectOption(value: 'trondelag', label: 'Trøndelag'),
  ],
  value: valgtFylke,
  placeholder: 'Velg fylke',
  onChanged: (verdi) => setState(() => valgtFylke = verdi),
)

Med feilmelding

dart
DsSelect<String>(
  options: const [
    DsSelectOption(value: 'administrator', label: 'Administrator'),
    DsSelectOption(value: 'bruker', label: 'Bruker'),
    DsSelectOption(value: 'gjest', label: 'Gjest'),
  ],
  value: null,
  placeholder: 'Velg rolle',
  error: 'Du må velge en rolle.',
  onChanged: (verdi) => setState(() => valgtRolle = verdi),
)

Med grupperte alternativer

dart
DsSelect<String>(
  options: const [],
  groups: const [
    DsSelectOptgroup(
      label: 'Norge',
      options: [
        DsSelectOption(value: 'oslo', label: 'Oslo'),
        DsSelectOption(value: 'bergen', label: 'Bergen'),
      ],
    ),
  ],
  value: valgtBy,
  placeholder: 'Velg by',
  onChanged: (verdi) => setState(() => valgtBy = verdi),
)

Retningslinjer

  • Beskriv alltid hva brukeren skal velge, enten via placeholder eller en synlig ledetekst over velgeren, og sett semanticsLabel slik at skjermlesere annonserer feltet.
  • Sorter alternativene i en logisk rekkefølge (f.eks. alfabetisk eller etter relevans).
  • error markerer feiltilstanden med rød kantlinje, men viser ingen feiltekst. Vis en egen, synlig feilmelding under velgeren når valideringen feiler.

Tekst

  • Plassholderteksten bør være kort og beskrivende (f.eks. «Velg fylke»).
  • Alternativtekstene (label) bør være fullstendige og entydige.

Har du innspill til denne komponenten? Send innspill på GitHub