⊗jsPrStAuc 11 of 62 menu

Autocomplétion en JavaScript

Nous allons maintenant implémenter l'autocomplétion. Ce terme désigne l'affichage d'une suggestion déroulante lors de la saisie de texte dans un champ de saisie. Regardons un exemple. Ci-dessous, j'ai créé un champ de saisie dans lequel vous pouvez entrer le nom d'un pays. En même temps, si vous entrez certaines lettres, une liste de pays commençant par la chaîne saisie apparaîtra sous le champ.

Si vous le souhaitez, pour ne pas avoir à saisir le nom du pays en entier, vous pouvez cliquer avec la souris sur n'importe quel pays et il apparaîtra dans le champ. C'est, en général, à cela que sert l'autocomplétion. Dans l'exemple, pour plus de simplicité, j'ai mis seulement trois pays : Belarus, Belgium et Bulgaria. Saisissez dans le champ ci-dessous d'abord la lettre 'B' (anglais), puis 'e' et observez ce qui se passe :

Discussion

Discutons de la manière de résoudre le problème. Il faut créer un tableau avec les noms des pays. Le mien est le suivant :

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

Lors de la saisie de texte dans le champ, à chaque frappe d'un caractère, il faut parcourir le tableau des pays et obtenir les pays qui commencent par la chaîne saisie. C'est pratique à faire avec les méthodes filter et startsWith.

Avec filter, on peut obtenir un tableau de pays commençant par la chaîne saisie. Ensuite, il faut parcourir ce tableau avec une boucle et remplir la liste ul avec des éléments de liste (li) contenant les pays. Et il faut faire cela à chaque saisie de caractère, en supprimant au préalable les éléments de liste précédemment créés de la liste ul.

Pour votre commodité, je joins le code HTML/CSS prêt à l'emploi :

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

Copiez les codes HTML et CSS fournis. Implémentez l'autocomplétion selon l'algorithme décrit.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser