То, что вы хотите, это обновление результатов поиска в режиме реального времени.Посмотрите на этот пример, результаты поиска будут скрывать результаты, если значение не совпадает.
function myFunction() {
var input, filter, ul, li, a, i, txtValue;
input = document.getElementById("myInput");
filter = input.value.toUpperCase();
ul = document.getElementById("myUL");
li = ul.getElementsByTagName("li");
for (i = 0; i < li.length; i++) {
a = li[i].getElementsByTagName("p")[0];
txtValue = a.textContent || a.innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
li[i].style.display = "";
} else {
li[i].style.display = "none";
}
}
}
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for names.." title="Type in a name">
<ul id="myUL" style="list-style: none;">
<li><p href="#">Adele</p></li>
<li><p href="#">Agnes</p></li>
<li><p href="#">Billy</p></li>
<li><p href="#">Bob</p></li>
<li><p href="#">Calvin</p></li>
<li><p href="#">Christina</p></li>
<li><p href="#">Cindy</p></li>
</ul>
Подробнее об этом: https://www.w3schools.com/howto/howto_js_filter_lists.asp