⊗jsPrStAuc 11 of 62 menu

Аўтадапаўненне на JavaScript

Зараз мы рэалізуем аўтадапаўненне. Пад гэтым тэрмінам разумеецца выпадальная падказка пры ўводзе тэксту ў інпут. Давайце паглядзім на прыкладзе. Ніжэй я зрабіў інпут, у які можна ўвесці назву краіны. Пры гэтым, калі ўвесці якія-небудзь літары, то пад інпутам з'явіцца спіс краін, якія пачынаюцца на ўведзены радок.

Пры жаданні можна, каб не ўводзіць цалкам назву краіны, клікнуць мышшу на любую краіну і яна з'явіцца ў інпуце. Для гэтага, наогул кажучы, аўтадапаўненне і патрэбнае. У прыкладзе для прастаты я зрабіў толькі тры краіны: Belarus, Belgium і Bulgaria. Увядзіце ў прыведзены ніжэй інпут спачатку сімвал 'B' англійскае, а потым 'e' і паглядзіце, што будзе:

Абмеркаванне

Давайце абмяркуем, як вырашаць задачу. Трэба зрабіць масіў з назвамі краін. У мяне ён вось такі:

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

Пры ўводзе тэксту ў інпут трэба па ўводзе кожнага сімвала перабіраць масіў з краінамі і атрымліваць краіны, якія пачынаюцца на ўведзены радок. Гэта зручна рабіць з дапамогай метадаў filter і startsWith.

З дапамогай filter можна атрымаць масіў краін, якія пачынаюцца з уведзенага радка. Затым трэба перабраць гэты масіў цыклам і запоўніць спіс ul лішкамі з краінамі. І так трэба рабіць на кожны ўвод сімвала, папярэдне выдаляючы з улькі раней створаныя лішкі.

Для вашай выгоды прыводжу гатовую верстку:

<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; }

Скапіруйце сабе прыведзены HTML і CSS коды. Рэалізуйце аўтадапаўненне згодна з апісаным алгарытмам.

Беларуская
AfrikaansAzərbaycanБългарскиবাংলাČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы выкарыстоўваем cookie для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць