⊗jsPrStAuc 11 of 62 menu

Auto-dopunjavanje na JavaScript-u

Sada ćemo implementirati auto-dopunjavanje. Pod ovim terminom podrazumeva se padajući iskačući meni sa sugestijama prilikom unosa teksta u input polje. Pogledajmo na primeru. Ispod sam napravio input polje, u koje se može uneti naziv države. Pritim, ako se unesu neka slova, ispod input polja će se pojaviti spisak država, koje počinju na uneti string.

Po želji, da ne bi unosili ceo naziv države, možete kliknuti mišem na bilo koju državu i ona će se pojaviti u input polju. Uopšte, za to nam i služi auto-dopunjavanje. U primeru, radi jednostavnosti, stavio sam samo tri države: Belarus, Belgium i Bulgaria. Unesite u dato input polje ispod prvo slovo 'B' (englesko), a zatim 'e' i pogledajte šta će se desiti:

Diskusija

Hajde da diskutujemo kako rešiti zadatak. Potrebno je napraviti niz sa nazivima država. Moj izgleda ovako:

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

Prilikom unosa teksta u input polje, prilikom svakog unosa slova potrebno je proći kroz niz sa državama i dobiti države, koje počinju na uneti string. To je zgodno uraditi koristeći metode filter i startsWith.

Koristeći filter možemo dobiti niz država koje počinju na uneti string. Zatim je potrebno proći kroz ovaj niz petljom i popuniti listu ul stavkama sa državama. I to je potrebno uraditi pri svakom unosu slova, prethodno uklanjajući iz liste prethodno kreirane stavke.

Za vašu praktičnost, navodim gotovu HTML strukturu (verstku):

<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 sebi date HTML i CSS kodove. Implementirajte auto-dopunjavanje prema opisanom algoritmu.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij