⊗jsPrStAuc 11 of 62 menu

Automatické doplňování v JavaScriptu

Nyní implementujeme automatické doplňování. Pod tímto pojmem se rozumí rozbalovací nápověda při zadávání textu do vstupního pole. Podívejme se na příklad. Níže jsem vytvořil vstupní pole, do kterého lze zadat název země. Přitom, pokud zadáte nějaká písmena, pod vstupním polem se objeví seznam zemí, které začínají na zadaný řetězec.

V případě zájmu lze, aby nebylo nutné zadávat celý název země, kliknout myší na libovolnou zemi a ta se objeví ve vstupním poli. K tomu, obecně řečeno, automatické doplňování slouží. V příkladu pro jednoduchost jsem vytvořil pouze tři země: Belarus, Belgium a Bulgaria. Zadejte do níže uvedeného vstupního pole nejprve znak 'B' anglické, a poté 'e' a podívejte se, co se stane:

Diskuse

Pojďme diskutovat o tom, jak úlohu řešit. Je třeba vytvořit pole s názvy zemí. U mě je takové:

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

Při zadávání textu do vstupního pole je třeba při zadání každého znaku procházet pole se zeměmi a získávat země, které začínají na zadaný řetězec. To je vhodné dělat pomocí metod filter a startsWith.

Pomocí filter lze získat pole zemí začínajících na zadaný řetězec. Poté je třeba projít toto pole cyklem a naplnit seznam ul položkami se zeměmi. A tak je třeba dělat při každém zadání znaku, předtím odstranit z ul dříve vytvořené položky.

Pro vaše pohodlí uvádím hotové rozvržení:

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

Zkopírujte si uvedené HTML a CSS kódy. Implementujte automatické doplňování podle popsaného algoritmu.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικά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
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout