Siirry sisältöön

ComboboxV2

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

Julkaistu versiossa 14.1.0

Esikatselu

Käyttötarkoitus

ComboboxV2 on tekstikentän ja valintalistan yhdistelmä, joka ehdottaa käyttäjälle listasta löytyviä vaihtoehtoja sen perustella, mitä käyttäjä tekstikenttään kirjoittaa. Automaattinen täydennys ehdottaa sopivia vaihtoehtoja reaaliaikaisesti samalla, kun käyttäjä 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 käyttäjä 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 käyttäjä tietää selkeästi, minkä vaihtoehdon hän haluaa valita (esimerkiksi luettelo valtioista tai diagnooseista).
  • Käytä komponenttia, kun haluat ehdottaa käyttäjälle sopivia vaihtoehtoja isosta joukosta (esim. hakukenttä).
  • Ohjeista tarvittaessa käyttäjää 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äin Toiminto
Enter Jos valikko on piilossa, ei tee mitään.
Jos valikko on auki, valitsee korostetun valinnan ja sulkee valikon.
Esc Jos valikko on auki, ja sulkee valikon.
Jos valikko on piilossa, tyhjentää kentän sisällön.
Tab Jos 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 voidaan asettaa seuraavat arvot ruudunlukijaa varten:

Avain Kuvaus Oletusarvo
resultsNotFound Teksti, joka luetaan kun valintavaihtoehtoja ei löydy. Valintavaihtoehtoja ei löytynyt
resultsFound Teksti, joka luetaan kun valintavaihtoehtoja löytyy. Funktio, jolla count-parametri. Valintavaihtoehtoja löytyi 1 kappale
Valintavaihtoehtoja löytyi 2 kappaletta
resultsDelayAfterType Aika millisekunteina, jonka jälkeen valintojen lukumäärä ilmoitetaan. 2000
resultsEnabled Määrittää luetaanko valintojen lukumäärä. true
resetButtonLabel Tyhjennä-painikkeen teksti. Poista valinta
selectedLabel Teksti, joka lisätään valinnan nimen eteen, kun vaihtoehto valitaan valikosta. Valittu
nothingIsSelectedLabel Teksti, joka luetaan kun valinta poistetaan. Valinta poistettu
loadingText Teksti, joka luetaan valikkoa avatessa, kun asynkroninen Combobox hakee vaihtoehtoja. Ladataan valintavaihtoehtoja
toggleButtonCloseLabel Valikon avauspainikkeen teksti avattuna. Sulje valintavaihtoehdot
toggleButtonOpenLabel Valikon avauspainikkeen teksti suljettuna. Avaa valintavaihtoehdot

Tekstikenttä

Käytä automaattisella täydennyksellä varustettua tekstikenttää silloin, kun haluat helpottaa käyttäjän työtä tarjoamalla sopivia ehdotuksia (esim. hakukenttä). Käytä komponenttia kuten mitä tahansa tekstikenttää. Käyttäjä 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 käyttäjällä 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 (ComboboxV2MenuOption).

Tapaus Toiminto
Syötettä vastaavia ehdotuksia 0 kpl Kentän sisältö tyhjennetään, kun kohdistus poistuu kentästä. OnSelect palauttaa tyhjän arvon.
Syötettä vastaavia ehdotuksia 1 kpl Ehdotettu arvo valitaan, kun kohdistus poistuu kentästä. OnSelect palauttaa valitun arvon.
Syötettä vastaavia ehdotuksia > 1 kpl Kentä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ä ComboboxV2MenuOption-komponentin render-propia. Voit esimerkiksi lisätä vaihtoehtoihin liittyviä lisätietoja, jos se auttaa käyttäjää 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

Oletusvalinta voidaan antaa merkkijonona tai ComboboxV2OptionValue-tyyppisenä objektina. Anna oletusvalinta value-propin kautta silloin, kun komponenttia käytetään kontrolloituna komponenttina.

Kokovaihtoehdot

Pienin koko (xs) on tarkoitettu tiivistä asettelua vaativiin asiantuntijakäyttöliittymiin.

Valikon renderöinti Portalin avulla

Valikko voidaan renderöidä Portal-komponentilla usePortal-proppia käyttäen. Tämä on tarpeellista silloin, kun ympäröivä elementti ei salli sisällön näyttämistä sen ulkopuolella.

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

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

Arvojen päivittäminen komponentin ulkopuolelta

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.

Valintojen hakeminen asynkronisesti

Valinnat voi noutaa asynkronisesti, kun komponentti renderöidään. Käytä ComboboxV2Async-komponenttia, jos valintoja on tarve täydentää input-kentän syötteen perusteella.

Valintojen täydentäminen käyttäjän syötteen perusteella

Voit käyttää ComboboxV2Async-komponentin loadOptions-proppia valintavaihtoehtojen hakemiseen ja suodattamiseen asynkronisesti, kun käyttäjä kirjoittaa input-kenttään. Tämä on suositeltavaa silloin kun valintavaihtoehtoja on erittäin paljon.

Kannattaa muodostaa loadOptions-funktio komponentin ulkopuolella tai kääriä se useCallback(Avautuu uuteen välilehteen)-hookkiin, jolloin se ei päivittyessään renderöi komponenttia turhaan uudelleen.

Valintavaihtoehtojen suodatus tehdään loadOptions-funktiossa. Funktion options-parametri palauttaa threshold- ja startsWith-arvot.

Oletusvalinnat voi antaa tavallisen Comboboxin tapaan lapsielementteinä. Jos oletusvalintoja ei ole annettu, haetaan ne loadOptions-funktiolla.

Esimerkki valintoja ehdottavasta syöttökentästä

Valintojen hakeminen valikon avautuessa

Oletuksena valikossa näytetään edelliset hakutulokset. Asetuksella loadOptionsOnToggle voidaan valinnat hakea loadOptions-funktiolla, joka mahdollistaa räätälöidyt vaihtoehdot, kun valikko avataan.

Muu-vaihtoehto

Muu-vaihtoehtoa käytettäessä ei tuloksia -ilmoitusta ei näytetä.