Kā izveidot Datalists Tas ir uzreiz meklējams
Nolaižamie saraksti ir veikls veids iespējas ievades laukam, jo īpaši, ja pieejamo iespēju saraksts ir garš. Lietotājs var izvēlēties sev vēlamo opciju ierakstot laukā, vai apskatiet iespējas kas var būt atbilstošs tam, ko viņi meklē. Iespējams meklēt, izmantojot opcijas, tomēr tas ir ideāls risinājums.
Šo rīcību var panākt ar HTML elements parāda ievades ieteikumus dažādām kontrolēm, piemēram,
tag. Tomēr
rāda tikai pieejamās opcijas, kad lietotājs ir jau ir ievadījis kaut ko ievades laukā.
Mēs varam padarīt ievades lauku vairāk izmantojamu, ja ļaujam lietotājiem piekļūt pilnam iespēju sarakstu jebkurā laikā ievades procesā.
Šajā ziņojumā mēs redzēsim, kā izveidot a nolaižamajā sarakstā, kas ir meklējams jebkurā laikā izmantojot un
HTML elementi un neliels JavaScript.
1. Izveidojiet Datalists ar opcijām
Pirmkārt, mēs izveidojam datalistu dažādiem teksta redaktoriem. Pārliecinieties, ka vērtība ir sarakstu
atribūts tag ir tāds pats kā the
ID
no tag - tas ir, kā mēs tos saistām viens ar otru.
2. Padariet redzamu Datalists
Pēc noklusējuma HTML elements ir slēpta. Mēs to varam redzēt tikai tad, kad mēs sāk ievadīt ievadi laukā datalists ir pievienots.
Tomēr ir veids, kā "piespiest" datalista saturu (t.i., visas tās iespējas) parādīties tīmekļa lapā. Mums tikai jāpiešķir tam piemērots displejs
īpašuma vērtību citāds nekā neviens nav
, piemēram displejs: bloks;
.
datalists display: block;
Parādītās iespējas vēl nav atlasāmi šajā brīdī, tikai pārlūks sniedz iespējas tā atrod datalistu iekšpusē.
Kā jau iepriekš minēts,. \ T elementu, daļa no opcijām jau ir redzamas un ir atlasāmas, bet tikai tad, kad lietotājs sāk rakstīt virkni, uz kuru var pārlūkot atrast atbilstošu opciju.
Mums ir arī jāatrod mehānisms, kas jāizdara viss opcijas (iepriekš redzamajā ekrānā, kas redzams zem izvelkamā datalista) izvēlēties pie jebkuru citu ievades procesa punktu - ja lietotāji vēlas pārbaudīt opcijas, pirms tās neko nedara, vai kamēr tās jau ir ievadījušas ievades laukā.
3. Ievietojiet
HTML elements
Ir divi veidi, kā iespējot lietotājus skatiet un atlasiet visas opcijas kad vien viņi vēlas:
- Mēs varam pievienot noklikšķiniet uz notikumu apstrādātāja katrai opcijai, un izmantojiet to, lai izvēlētos iespēju, kad tā ir noklikšķināta uz vai arī mēs varam pārveidot iespējas reālā nolaižamajā sarakstā, kuru pēc noklusējuma ir iespējams izvēlēties.
- Mēs varam ietiniet opcijas datalista Ar
HTML elements.
Mēs izvēlēsimies otro metodi, jo tā ir vienkāršāka, un to var izmantot kā rezerves mehānisms pārlūkprogrammās, kas neatbalsta elementu. Ja pārlūks nevar atveidot un atainot datalistu, tas tiek darīts padara
elementu ar visām tās iespējām tā vietā.
Pēc noklusējuma izvēlieties
elements neparādās pārlūkprogrammās, kas atbalsta datalistu, tas ir, līdz mēs piespiest datalistu sniegt savu saturu Ar displejs: bloks;
CSS noteikums.
Tātad, kad mēs ietiniet opcijas no iepriekš minētā piemēra (kur ir datalists) displejs: bloks
) Ar HTML tag, kods izskatās šādi:
Uz skatiet visas iespējas no izvēlieties
nolaižamajā sarakstā mums ir jāizmanto atribūti vairāki
lai paràdïtu vairàkas iespºjas, un Izmērs
par to iespēju skaitu, kuras mēs vēlamies parādīt.
4. Pievienojiet pogu Pārslēgt
Parādās pilns nolaižamais saraksts tikai kad lietotājs noklikšķina uz pārslēgšanas pogas blakus ievades laukam, kamēr tiek parādīts lietotāja dators, kas strādā. Let's nomaini displejs
datalista vērtība uz neviens nav
, un arī pievienot pogu blakus ievades laukam, kas pārslēgs displejs
datalista vērtība, un tādējādi izraisa izskatu izvēlieties
.
datalists displejs: nav;
HTML failā ir nepieciešams arī pievienot šādu pogu virs datalista:
Tagad aplūkosim JavaScript. Pirmkārt, mēs definējam sākotnējie mainīgie.
poga = document.querySelector ('poga'); datalist = document.querySelector (“datalists”); select = document.querySelector ('select'); options = select.options;
Tālāk mums ir nepieciešams pievienot notikumu klausītāju (toggle_ddl
) uz pogas klikšķa notikumu pārslēgt datalista izskatu.
button.addEventListener ('noklikšķiniet', toggle_ddl);
Tad mēs definējam toggle_ddl ()
funkciju. Lai to izdarītu, mums ir nepieciešams pārbaudiet datalist.style.display
īpašums. Ja tā ir tukša virkne, datalists ir paslēpts, tāpēc mums ir nepieciešams iestatiet tās vērtību bloķēt
, un arī uz mainīt pogu no lejupvērstās bultiņas uz bultiņu, kas vērsta uz augšu.
funkcija toggle_ddl () / * ja DDL ir paslēpta * / ja (datalist.style.display === ") / * rādīt DDL * / datalist.style.display = 'bloks'; this.textContent =" âÂ-² "; else hide_select (); funkcija hide_select () / * paslēpt DDL * / datalist.style.display ="; button.textContent = "âÂ-¼";
The hide_select ()
funkciju slēpj datalistu iestatot datalist.style.display
atpakaļ uz tukšu virkni un mainot pogas bultiņu atpakaļ uz leju.
Galīgajā iestatījumā, ja ievades lauki satur iepriekš atlasītu opciju, un nolaižamais saraksts ir aktivizēts arī ar vēlāku klikšķu klikšķi, arī izvēlētā opcija previoulsy ir jānorāda kā izvēlēts nolaižamajā sarakstā.
Tātad, pievienosim šādu iezīmēto kodu toggle_ddl ()
funkcija:
funkcija toggle_ddl () / * ja DDL ir paslēpta * / ja (datalist.style.display === ") / * rādīt DDL * / datalist.style.display = 'bloks'; this.textContent =" âÂ-² "; var val = input.value; attiecībā uz (var i = 0; iMēs vēlamies arī paslēpt nolaižamo sarakstu, kad lietotājs ieraksta ievades laukā (brīdī, kad parādīsies darba datalists).
/ * ja lietotājs vēlas ierakstīt teksta laukā, paslēpt DDL * / input = document.querySelector (“ievade”); input.addEventListener ('focus', hide_select);5. Atjauniniet ievadi, ja ir izvēlēta opcija
Visbeidzot, pieņemsim pievienot a
izmaiņas
notikumu apstrādātājs uzlai lietotājs izvēlētos opciju nolaižamajā sarakstā, tā vērtība tiks parādīta
jomā.
/ * ja lietotājs izvēlas opciju no DDL, ierakstiet to teksta laukā * / select.addEventListener ('change', fill_input); funkcija fill_input () input.value = opcijas [this.selectedIndex] .value; hide_select ();Trūkumi
Šīs tehnikas galvenais trūkums ir nav tieša veida stila
elementu ar CSS (. \ t
un
tagi atšķiras dažādās pārlūkprogrammās).
Arī Firefox, ievades teksts ir saskaņots ar opcijām satur ievades rakstzīmes, bet citas pārlūkprogrammas atbilst opcijām sāk ar šīs rakstzīmes. W3C specifikācija datalistam nepārprotami nenorāda, kā jāveic saskaņošana.
Izņemot šo, šī metode ir laba un darbojas visās galvenajās pārlūkprogrammās, tā kā pārlūkprogrammās, kurās tas var nedarboties, lietotāji joprojām var redzēt nolaižamo sarakstu, bet tikai ieteikumi netiks parādīti.
Tālāk skatiet galīgo demonstrāciju ar mazliet CSS stilu: