Siirry sisältöön

14.5.0

Poistuva

Combobox

Tekstikentän ja valintalistan yhdistelmä, joka ehdottaa käyttäjälle valintoja.

Julkaistu versiossa 5.0.0

Combobox-komponentti poistuu käytöstä versiossa 16.0.0. Komponenttia ei enää kehitetä, eikä siihen lisätä uusia ominaisuuksia.

Tutustu uuteen ComboboxV2-komponenttiin.

Esikatselu

Käyttötarkoitus

Combobox on tekstikentän ja valintalistan yhdistelmä, joka ehdottaa asiakkaalle listasta löytyviä vaihtoehtoja sen perustella, mitä asiakas tekstikenttään kirjoittaa. Automaattinen täydennys ehdottaa sopivia vaihtoehtoja reaaliaikaisesti samalla, kun asiakas kirjoittaa tekstikenttään merkkejä. Sopivat vaihtoehdot näytetään valintalistassa. Automaattinen täydennys nopeuttaa oikean vaihtoehdon löytämistä tilanteissa, joissa valittavia vaihtoehtoja on paljon ja niiden selaaminen valintalistasta olisi työlästä.

Automaattinen täydennys voi aloittaa haun heti ensimmäisestä kirjoitetusta merkistä tai tietyn merkkimäärän jälkeen. Jos esimerkiksi haetaan suomalaisella IBAN-tilinumerolla, haku kannattaa aloittaa vasta kolmannesta merkistä, koska kaikki tilinumerot alkavat samalla FI-etuliitteellä. Kirjoitetun merkkijonon ei kuitenkaan tarvitse löytyä heti sanan alusta, vaan asiakas voi hakea myös sanan loppuosalla. Tarvittaessa komponentin voi asettaa näyttämään vain ehdotuksia, jotka alkavat annetulla merkkijonolla.

Tee näin
  • Käytä komponenttia, kun valintalistassa on paljon arvoja, ja asiakas tietää selkeästi, minkä vaihtoehdon hän haluaa valita (esimerkiksi luettelo valtioista tai diagnooseista).
  • Käytä komponenttia, kun haluat ehdottaa asiakkaalle sopivia vaihtoehtoja isosta joukosta (esim. hakukenttä).
  • Ohjeista tarvittaessa asiakasta komponentin käyttöön.
  • Luettele vaihtoehdot loogisessa järjestyksessä, esimerkiksi valinnan yleisyyden mukaan tai aakkosjärjestyksessä.
  • Nimeä vaihtoehdot selkeästi ja ymmärrettävästi, mutta mahdollisimman napakasti.
Älä tee näin

Saavutettavuus

Komponentti toteuttaa teknisesti saavutettavan combobox-käyttöliittymäelementin.

NäppäinToiminto
EnterJos valikko on piilossa, ei tee mitään.
Jos valikko on auki, valitsee korostetun valinnan ja sulkee valikon.
EscJos valikko on auki, ja sulkee valikon.
Jos valikko on piilossa, tyhjentää kentän sisällön.
TabJos valikko on auki, sulkee valikon kohdistuksen poistuessa komponentista.
Jos valikko on auki, korostaa seuraavan valinnan. (focus trap)
Jos valikko on piilossa ja käytössä on vain tekstikenttä, ei tee mitään.
Jos valikko on piilossa ja käytössä on pudotusvalikko, avaa valikon ja korostaa ensimmäisen vaihtoehdon.
Jos valikko on auki, korostaa edellisen valinnan. (focus trap)
Jos valikko on piilossa ja käytössä on vain tekstikenttä, ei tee mitään.
Jos valikko on piilossa ja käytössä on pudotusvalikko, avaa valikon ja korostaa viimeisen vaihtoehdon.

Komponentille voi asettaa selectedLabel ja nothingIsSelectedLabel-propit. nothingIsSelectedLabel määritää ruudunlukijalle välitettävän tekstin, joka kertoo, että valintaa ei ole tehty. selectedLabel välittää ruudunlukijalle valinnasta kertovan tekstin.

Tekstikenttä

Käytä automaattisella täydennyksellä varustettua tekstikenttää silloin, kun haluat helpottaa asiakkaan työtä tarjoamalla sopivia ehdotuksia (esim. hakukenttä). Käytä komponenttia kuten mitä tahansa tekstikenttää. Asiakas voi valita komponentin ehdottamista vaihtoehdoista sopivan tai kirjoittaa kenttään oman arvon. Kenttään syötetyn tekstin validointi jää lomakkeen kehittäjän tehtäväksi.

Tekstikentän ja valikon yhdistelmä

Käytä tekstikentän ja valikon yhdistelmää, jos asiakkaalla voi olla tarve etsiä sopivaa vaihtoehtoa tietystä joukosta käyttäen automaattista täydennystä tai valitsemalla se valikosta. Älä tarjoa avattavaa valikkoa, jos valittavia vaihtoehtoja on niin paljon, että niiden selaaminen on todella hankalaa.

Salli vain valikossa olevat arvot

Komponentin saa toimimaan Select-komponentin kaltaisesti propilla allowOnlyListedValues, joka sallii kenttään vain ne arvot, jotka löytyvät komponentille annetuista vaihtoehdoista (ComboboxMenuOption).

TapausToiminto
Syötettä vastaavia ehdotuksia 0 kplKentän sisältö tyhjennetään, kun kohdistus poistuu kentästä. OnSelect palauttaa tyhjän arvon
Syötettä vastaavia ehdotuksia 1 kplEhdotettu arvo valitaan, kun kohdistus poistuu kentästä. OnSelect palauttaa valitun arvon
Syötettä vastaavia ehdotuksia > 1 kplKentän sisältö tyhjennetään, kun kohdistus poistuu kentästä. OnSelect palauttaa tyhjän arvon

Valikon muokkaus

Valintalistan sisältöä ja ulkoasua voi muokata käyttämällä ComboboxMenuOption-komponentin render-propia. Voit esimerkiksi lisätä vaihtoehtoihin liittyviä lisätietoja, jos se auttaa asiakasta löytämään tai valitsemaan vaihtoehdon.

Huomaa, että kenttä ei suodata valintoja esitettyjen lisätietojen perusteella. Mahdolliset lisätiedot tulee erottaa visuaalisesti varsinaisista valinnoista.

Virheilmoitus

Estetty

Lukutila

Oletusvalinta

Painikkeiden tai lisätietojen yhdistäminen input-kenttään

Tarvittaessa addonBefore ja addonAfter -propeilla voi yhdistää lisätietoja tai painikkeita komponentin input-kenttään.

Valinnan päivittäminen ja resetointi komponentin ulkopuolelta

Tarvittaessa kentän arvon voi päivittää komponentin ulkopuolelta hyödyntämällä ref-objektin mukana palautuvia reset- ja setValue-funktioita.

Async

Käytä loadOptions-proppia vaihtoehtojen näyttämiseen ja suodattamiseen komponentin ulkopuolelta. loadOptions-propin kautta välitettävällä objektilla tulee olla value ja label -propertyt. loadingText-prop välittää ruudunlukijalle näytettävän tekstin sekä näkyvän tekstin latausta suoritettaessa. Komponentin näyttämät oletusvalinnat tulee määrittää defaultOptions-propin avulla. Jättämällä tämän propin pois, haetaan oletusvalinnat loadOptions-funktiossa kuvatulla kutsulla.

Muu-vaihtoehto

Muu-vaihtoehtoa voi käyttää, kun halutaan tarjota valintavaihtoehto silloin kun muita vaihtoehtoja ei löydy. Muu-vaihtoehto voi myös olla näkyvissä jatkuvasti ja se on myös osa suodatusvaihtoehtoja.

Muu-vaihtoehdon käyttö async-version kanssa

Huomioi, että noOptionsLabel ylikirjoittaa “muu-vaihtoehdon”, joten älä käytä näitä toimintoja yhdessä.