JSFiddle - React, Tailwind, and code Playground
HTML
<input id="inp" type="text"></input>
JavaScript
var databaseResults = [
"zdravei",
"zdrasti",
"hello"
];
$("#inp").keydown(function(e) {
// Спираме default поведението на input-a
e.preventDefault();
// Проверяваме за натиснат backspace
if (e.which === 8) {
this.value = this.value.substring(0, this.value.length - 1);
} else {
// Кодовете, върнати от event-a, съответстват на главни букви в ASCI таблицата
var keyPressed = String.fromCharCode(e.which).toLowerCase();
var inputCandidate = this.value + keyPressed;
var matches = [];
for (var i = 0; i < databaseResults.length; i++) {
var str = databaseResults[i];
// Търсим само в началото на резултатите от базата данни(^ символът е ключът)
if (str.match( '^' + inputCandidate)) {
matches.push(str);
}
}
if (matches.length > 0) {
// Имаме съвпадения - > ъпдейтваме текущия текст
this.value += keyPressed;
}
}
});