Miten luodaan Datalisti, joka on heti haettavissa
Pudotusluettelot ovat siisti tapa vaihtoehtoja syöttökenttään, varsinkin kun käytettävissä olevien vaihtoehtojen luettelo on pitkä. Käyttäjä voi valita haluamansa vaihtoehdon kirjoittamalla kenttään, tai katso vaihtoehtoja se voi olla sama kuin mitä he etsivät. Voit etsiä vaihtoehtoja, on kuitenkin ihanteellinen ratkaisu.
Tämä käyttäytyminen voidaan saavuttaa HTML-elementti näyttää syöttöehdotuksia eri säätimille, kuten
tag. kuitenkin
näyttää vain käytettävissä olevat vaihtoehdot, kun käyttäjä on jo kirjoittanut jotain syöttökenttään.
Voimme tehdä syöttökentän käyttökelpoisemmaksi, jos sallimme käyttäjien käyttää kaikkia vaihtoehtoja milloin tahansa syöttöprosessin aikana.
Tässä viestissä näemme, miten luodaan a avattavasta luettelosta, joka on haettavissa milloin tahansa käyttämällä ja
HTML-elementit ja pieni JavaScript.
1. Luo Datalisti, jossa on Asetukset
Ensinnäkin luomme datalistin erilaisille tekstieditorille. Varmista, että arvo on lista
ominaisuus tag on sama kuin
id
n tag - näin me sitomme ne toisiinsa.
2. Tee Datalist näkyvistä
Oletuksena on HTML-elementti on kätketty. Voimme vain nähdä sen, kun me alkaa kirjoittaa tuloa kenttään datalisti on liitetty.
On kuitenkin olemassa tapa "pakottaa" datalistin sisältö (ts. Kaikki sen asetukset) näkyvät verkkosivulla. Meidän on vain annettava sille sopiva näyttö
omaisuuden arvo muu kuin ei mitään
, esimerkiksi display: block;
.
datalisti näyttö: lohko;
Näytetyt vaihtoehdot eivät ole vielä valittavissa tässä vaiheessa vain selain tekee vaihtoehdot se löytyy datalistista.
Kuten edellä on mainittu, johtuen sisäänrakennetusta käyttäytymisestä elementti, osa vaihtoehdoista on jo näkyvissä ja ne ovat valittavissa, mutta vain kun käyttäjä alkaa kirjoittaa merkkijonon, johon selain voi löytää sopiva vaihtoehto.
Meidän on myös löydettävä mekanismi kaikki vaihtoehdot (yllä olevassa kuvassa, joka näkyy pudotusvalikossa) valittavissa at mikä tahansa muu syöttöprosessin kohta - kun käyttäjät haluavat tarkistaa asetukset ennen kuin he kirjoittavat mitään, tai kun he ovat jo ottaneet jotain syöttökenttään.
3. Tuo
HTML-elementti
Käyttäjät voivat ottaa käyttöön kaksi tapaa katso ja valitse kaikki vaihtoehdot aina kun he haluavat:
- Voimme lisätä a napsauta tapahtuman käsittelijää jokaiselle vaihtoehdolle, ja valitse se, kun valitset vaihtoehdon, kun sitä napsautetaan, tai voimme myös muuttaa vaihtoehtoja osaksi todellista avattavaa luetteloa, joka on oletusarvoisesti valittavissa.
- Me voimme kääri vaihtoehdot datalisti kanssa
HTML-elementti.
Valitsemme toisen menetelmän, koska se on yksinkertaisempi ja sitä voidaan käyttää varajärjestelmänä selaimissa, jotka eivät tue elementti. Kun selain ei pysty näyttämään ja näyttämään datalistia, se tekee
kaikki sen vaihtoehdot sen sijaan.
Oletuksena on valita
elementti ei näy selaimissa, jotka tukevat datalistia, eli kunnes me pakottaa datalisti tekemään sen sisällön kanssa näyttö: lohko;
CSS-sääntö.
Joten, kun me kääri vaihtoehdot edellä olevasta esimerkistä (jossa datalistilla on display: block
) kanssa HTML-tunniste, koodi näyttää alla olevalta:
jotta katso kaikki vaihtoehdot of valita
avattavassa luettelossa on käytettävä attribuutteja moninkertainen
näyttää useita vaihtoehtoja ja koko
niiden vaihtoehtojen määrästä, joita haluamme näyttää.
4. Lisää Toggle-painike
Koko avattavan luettelon pitäisi näkyä vain kun käyttäjä napsauttaa vaihtopainiketta syöttökentän vieressä, kun taas käyttäjätyypit toimivat datalistina. Katsotaanpa muuta näyttö
datalistin arvo että ei mitään
, ja myös lisää painike syöttökentän vieressä, joka vaihtaa näyttö
datalistin arvo ja näin ollen käynnistää valita
.
datalisti näyttö: ei;
Meidän on myös lisättävä seuraava painike datalistin yläpuolelle HTML-tiedostoon:
Nyt katsotaan JavaScript. Ensin määritellään alkumuuttujat.
button = document.querySelector ('painike'); datalist = document.querySelector ('datalist'); select = document.querySelector ('valitse'); vaihtoehdot = select.options;
Seuraavaksi meidän täytyy lisää tapahtuman kuuntelija (toggle_ddl
) painikkeen tapahtumaan, joka tulee vaihtaa datalistin ulkonäköä.
button.addEventListener ('klikkaa', toggle_ddl);
Sitten määrittelemme toggle_ddl ()
toimia. Voit tehdä niin tarkista datalist.style.display
omaisuus. Jos se on tyhjä merkkijono, datalisti on piilotettu, joten meidän täytyy asettaa sen arvon lohko
, ja myös muuta painiketta alaspäin osoittavasta nuolesta ylöspäin osoittavaan nuolta.
toiminto toggle_ddl () / * jos DDL on piilotettu * / jos (datalist.style.display ===) / * Näytä DDL * / datalist.style.display = 'lohko'; this.textContent = "âÂ-² "; else hide_select (); toiminto hide_select () / * piilota DDL * / datalist.style.display ="; button.textContent = "âA-a¼";
hide_select ()
toimia piilottaa datalistin asettamalla datalist.style.display
ominaisuus palautetaan tyhjään merkkijonoon ja muutetaan painikkeen nuolta taaksepäin osoittamalla alaspäin.
Lopullisessa asennuksessa, jos syöttökentät pitävät aiemmin valittua vaihtoehtoa ja pudotusvalikko on myös käynnistetty myöhemmällä painikkeella, myös edellinen valittu vaihtoehto on näytettävä valittuna avattavasta luettelosta.
Lisää siis seuraava korostettu koodi toggle_ddl ()
toimia:
toiminto toggle_ddl () / * jos DDL on piilotettu * / jos (datalist.style.display ===) / * Näytä DDL * / datalist.style.display = 'lohko'; this.textContent = "âÂ-² "; var val = input.value; varten (var i = 0; iHaluamme myös piilottaa avattavan luettelon, kun käyttäjä kirjoittaa syöttökenttään (silloin kun työskentelydatalisti tulee näkyviin).
/ * kun käyttäjä haluaa kirjoittaa tekstikenttään, piilota DDL * / input = document.querySelector ('input'); input.addEventListener ('focus', hide_select);5. Päivitä tulo, kun vaihtoehto on valittu
Lopuksi, let's lisää
muuttaa
tapahtumakäsittelijä ettätunniste, niin että kun käyttäjä valitsee avattavasta luettelosta vaihtoehdon, sen arvo näkyy
alalla.
/ * kun käyttäjä valitsee vaihtoehdon DDL: stä, kirjoita se tekstikenttään * / select.addEventListener ('change', fill_input); toiminto fill_input () input.value = asetukset [this.selectedIndex] .value; hide_select ();haittoja
Tämän tekniikan pääasiallinen haittapuoli on suoran tavan puuttuminen
elementti CSS: n kanssa
ja
tunnisteet vaihtelevat eri selaimissa).
Myös Firefoxissa tuloteksti on sovitettu vaihtoehtoihin sisältää syöttömerkit, kun taas muut selaimet vastaavat vaihtoehtoja alkaa nämä merkit. Datalistille tarkoitettu W3C-spesifikaatio ei täsmällisesti määritä, miten sovitus tulisi tehdä.
Muutoin tämä menetelmä on hyvä ja toimii kaikissa tärkeimmissä selaimissa, ottaa huomioon, että selaimissa, joissa se ei ehkä toimi, käyttäjät voivat silti nähdä avattavan luettelon, vain ehdotukset eivät näy.
Tutustu viimeiseen demoon, jossa on vähän CSS-muotoilua alla: