⊗jsPrStAuc 11 of 62 menu

Samodejno dopolnjevanje v JavaScript

Zdaj bomo implementirali samodejno dopolnjevanje. Pod tem izrazom razumemo spustni namig pri vnosu besedila v vnosno polje. Poglejmo na primeru. Spodaj sem naredil vnosno polje, v katerega je mogoče vnesti ime države. Pri tem, če vneseš nekaj črk, se pod vnosnim poljem prikaže seznam držav, ki se začnejo z vnesenim nizom.

Po želji je mogoče, da ni treba vnesti v celoti ime države, klikniti z miško na katero koli državo in ta se bo prikazala v vnosnem polju. Za to, na splošno, je samodejno dopolnjevanje potrebno. V primeru za enostavnost sem naredil samo tri države: Belarus, Belgium in Bulgaria. Vnesite v spodnje vnosno polje najprej znak 'B' angleški, nato pa 'e' in poglejte, kaj se bo zgodilo:

Razprava

Razpravljajmo, kako rešiti nalogo. Potrebno je narediti seznam z imeni držav. Pri meni je takšen:

let arr = ['Belarus', 'Belgium', 'Bulgaria'];

Pri vnosu besedila v vnosno polje je ob vsakem vnosu znaka potrebno prebrskati seznam z državami in dobiti države, ki se začnejo z vnesenim nizom. To je priročno narediti z metodama filter in startsWith.

Z filter je mogoče dobiti seznam držav, ki se začnejo z vnesenim nizom. Nato je potrebno prebrskati ta seznam z zanko in zapolniti seznam ul z elementi li z državami. In tako je potrebno narediti ob vsakem vnosu znaka, predhodno odstranivši iz seznama ul prej ustvarjene elemente li.

Za vašo priročnost prinašam pripravljeno razporeditev:

<div id="parent"> <input id="elem"> <ul id="list"></ul> </div> text text text text text #parent { position: relative; } #elem { padding: 5px; font-size: 18px; } #parent ul { position: absolute; margin: 0; padding: 0; list-style-type: none; background-color: white; } #parent li { border: 1px solid gray; font-size: 18px; padding: 5px; } #parent li:hover { border: 1px solid black; cursor: pointer; }

Kopirajte si navedene HTML in CSS kode. Implementirajte samodejno dopolnjevanje po opisanem algoritmu.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni