Kako ustvariti Datalist, ki je takoj iskanje
Spustni seznami so čeden način za možnosti za vnosno polje, zlasti če je seznam razpoložljivih možnosti dolg. Uporabnik lahko izbere želeno možnost tipkanje v polje, ali preglejte možnosti to se lahko ujema s tistim, kar iščejo. Možnost iskanja po možnostih, vendar je idealna rešitev.
To vedenje je mogoče doseči z Element HTML, ki prikaže predloge za vnos za različne kontrole, kot je
oznaka. Vendar pa
prikaže samo razpoložljive možnosti, ko ima uporabnik že vnesli nekaj v vnosno polje.
Polje za vnos lahko naredimo bolj uporabno, če uporabnikom omogočimo dostop do celotnega seznama možnosti kadar koli med postopkom odvzema vnosa.
V tem prispevku bomo videli, kako ustvariti spustnega seznama, ki ga lahko kadar koli iščete uporabljati in
Elementi HTML in malo JavaScript.
1. Ustvarite Datalist z možnostmi
Najprej ustvarimo podatkovno zbirko za različne urejevalnike besedil. Prepričajte se, da je vrednost seznamu
atribut. \ t oznaka je enako kot
id
od tag - to je, kako jih vežemo med seboj.
2. Datalist vidimo
Privzeto je Element HTML je skrito. Vidimo jo lahko samo, ko smo začnite tipkati vnos v polje, ki mu je priložen podatkovni list.
Vendar pa obstaja način za "prisilno" vsebino podatkovne zbirke (tj. Vse njene možnosti) za prikaz na spletni strani. Moramo mu dati le primerno zaslon
vrednost nepremičnine razen nobena
, na primer prikaz: blok;
.
datalist display: block;
Prikazane možnosti še ni mogoče izbrati v tem trenutku samo brskalnik prikaže možnosti najde v podatkovni zbirki.
Kot je navedeno zgoraj, zaradi vgrajenega obnašanja element, del možnosti se že prikaže in je mogoče izbrati, vendar le, ko uporabnik začne vnašati niz, do katerega lahko brskalnik poiščite možnost ujemanja.
Prav tako moramo poiskati mehanizem, ki ga želimo uvesti vse možnosti (na zgornji sliki zaslona, prikazani v spustnem seznamu podatkov) izbira na katero koli drugo točko vnosnega postopka - ko uporabniki želijo preveriti možnosti, preden karkoli vpišejo, ali pa, ko so že vnesli nekaj v vnosno polje.
3. Pripeljite
Element HTML
Uporabnikom lahko omogočite dva načina in izberite vse možnosti kadar koli želijo:
- Dodamo lahko a kliknite nadzornik dogodkov za vsako možnost in jo uporabite za izbiro možnosti, ko jo kliknete, ali pa tudi transform možnosti v pravi spustni seznam, ki je privzeto izbirna.
- Mi lahko ovijte možnosti podatkovnega lista z
Element HTML.
Izbrali bomo drugo metodo, saj je enostavnejša in jo lahko uporabimo kot nadomestni mehanizem v brskalnikih, ki ne podpirajo element. Ko brskalnik ne more prikazati in prikazati podatkovnega zbora, ga prikaže
element z vsemi možnostmi namesto tega.
Privzeto je izberite
element se ne pojavi v brskalnikih, ki podpirajo podatkovni sistem, to je, dokler ne prisilite podatkovnika, da prikaže njegovo vsebino z prikaz: blok;
Pravilo CSS.
Torej, ko bomo ovijte možnosti iz zgornjega primera (kjer ima podatkovna zbirka) prikaz: blok
) z Oznaka HTML, koda izgleda spodaj:
Za vse možnosti od izberite
na spustnem seznamu moramo uporabiti atribute večkraten
za prikaz več kot ene možnosti in velikosti
za število možnosti, ki jih želimo prikazati.
4. Dodajte gumb za preklop
Prikaže se celoten spustni seznam samo ko uporabnik klikne preklopni gumb poleg vnosnega polja, medtem ko uporabnik vnese delovno podatkovno zbirko. Gremo spremenite zaslon
vrednost datalista do nobena
, in tudi dodajte gumb poleg vnosnega polja, ki bo preklopil zaslon
vrednost podatkovnega lista in posledično sproži pojav izberite
.
datalist display: none;
Poleg datalista v datoteki HTML moramo dodati tudi naslednji gumb:
Zdaj pa si oglejmo JavaScript. Najprej definiramo začetne spremenljivke.
gumb = document.querySelector ("gumb"); datalist = document.querySelector ('datalist'); select = document.querySelector ('select'); options = select.options;
Nato moramo dodaj poslušalca dogodka (toggle_ddl
) na dogodek klika gumba, ki bo preklopite videz podatkovnega lista.
button.addEventListener ('klik', toggle_ddl);
Potem definiramo toggle_ddl ()
funkcijo. Da bi to storili, moramo preverite vrednost datalist.style.display
nepremičnine. Če je prazen niz, je podatkovna zbirka skrita, zato moramo nastavite vrednost na blok
, in tudi spremenite gumb od puščice navzdol do puščice obrnjene navzgor.
function toggle_ddl () / * če je DDL skrit * / if (datalist.style.display === ") / * prikaži DDL * / datalist.style.display = 'block'; this.textContent =" âÂ-² "; else hide_select (); funkcija hide_select () / * hide DDL * / datalist.style.display ="; button.textContent = "âÂ-¼";
The hide_select ()
funkcijo skrije podatkovno zbirko z nastavitvijo datalist.style.display
Lastnost se vrne na prazen niz in spremeni puščico gumba nazaj na točko navzdol.
Če končna nastavitev vsebuje vnosna polja za predhodno izbrano možnost in se spustni seznam sproži tudi s poznejšim klikom gumba, je izbrana predoglavna možnost tudi mora biti prikazan kot izbran na spustnem seznamu.
Torej dodamo naslednjo označeno kodo toggle_ddl ()
funkcija:
function toggle_ddl () / * če je DDL skrit * / if (datalist.style.display === ") / * prikaži DDL * / datalist.style.display = 'block'; this.textContent =" â   ""; var val = input.value; za (var i = 0; iPrav tako želimo skriti spustni seznam, ko uporabnik vnese v vnosno polje (v času, ko se bo pojavil delovni podatkovni seznam)..
/ * ko uporabnik želi vnesti besedilno polje, skrij DDL * / input = document.querySelector ('input'); input.addEventListener ('focus', hide_select);5. Posodobite vnos, ko je izbrana možnost
In končno dodajte a
spremembe
dogodka do, tako da bo, ko uporabnik izbere možnost s spustnega seznama, njegova vrednost prikazana znotraj
tudi polje.
/ * ko uporabnik izbere možnost iz DDL-ja, jo napiši v besedilno polje * / select.addEventListener ('change', fill_input); funkcija fill_input () input.value = options [this.selectedIndex] .value; hide_select ();Pomanjkljivosti
Glavna pomanjkljivost te tehnike je odsotnost neposrednega načina oblikovanja
element s CSS (videz
in
oznake se razlikujejo v različnih brskalnikih).
Tudi v Firefoxu se vhodno besedilo ujema z možnostmi, ki vsebuje vhodne znake, medtem ko se drugi brskalniki ujemajo z možnostmi začni z znakov. Specifikacija W3C za datalist ne določa izrecno, kako naj se izvede ujemanje.
Razen tega je ta metoda dobra in deluje v vseh večjih brskalnikih, medtem ko v brskalnikih, kjer morda ne deluje, uporabniki še vedno vidijo spustni seznam, samo predlogi ne bodo prikazani.
Spodaj si oglejte končni demo z nekaj stylinga CSS: