-
Notifications
You must be signed in to change notification settings - Fork 0
/
autocomplete.js
41 lines (32 loc) · 1.09 KB
/
autocomplete.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
let availableKeywords=["foodinfo", "gpa exchange", "mathworks", "coursera",
"oo", "ooo", "oooo", "ooooo"];
const resultsBox=document.querySelector(".result-box");
const inputBox=document.getElementById("input-box");
// onkeyup will function once the input box is inserted
inputBox.onkeyup=function() {
let result=[];
let input=inputBox.value;
// if there is something input
if (input.length) {
result=availableKeywords.filter((keyword)=>{
return keyword.toLowerCase().includes(input.toLowerCase());
});
console.log(result);
}
display(result);
if (!result.length) {
resultsBox.innerHTML='';
}
}
// this function displays the result
function display(result) {
const content=result.map((list)=>{
return "<li onclick=selectInput(this)>"+list+"</li>";
});
resultsBox.innerHTML="<ul>"+content.join('')+"</ul>";
}
// this function puts the selected item into the search box and remove the other results
function selectInput(list) {
inputBox.value=list.innerHTML;
resultsBox.innerHTML='';
}