#javascript #input
#javascript #ввод
Вопрос:
у меня есть кнопка ввода и поиска, я хочу, чтобы при нажатии на ввод отображались значения, которые я искал ранее. и когда я нажимаю кнопку сохранить новое значение в истории, как я могу это сделать? вот что я пробовал, но ничего не делает. Спасибо
HTML:
<input class="inp" type="text">
<button class="search"></button>
JS:
let dd = document.querySelector('.inp').value;
document.querySelector('.inp').name = dd;
Комментарии:
1. Сохраните его в
array
и просматривайте, когда захотите показать старые результаты поиска2. Вы также можете использовать localStorage для долгосрочного сохранения.
3. Рассмотрите возможность использования библиотеки для этого типа, поскольку для использования в качестве всех предыдущих владельцев требуется
input
многоsearch history
работы. потому что этот ввод должен работать как выпадающий список, в котором хранятся все предыдущие выполненные вами поиски.4. @AlwaysHelping Разве вы не можете просто использовать
list
атрибут?5. @obsoleteawareproduceесть так много способов, но требуется некоторая работа, я привожу здесь идеи, чтобы помочь OP.
Ответ №1:
HTML:
<input class="inp" type="text" list="searchdata">
<button class="search">Search</button>
<datalist id="searchdata"></datalist>
Скрипт:
var searchHistory = (localStorage.searchHistory) ? JSON.parse(localStorage.searchHistory) : [];
document.querySelector(".search").addEventListener("click", () => {
searchHistory.push(document.querySelector(".inp").value);
localStorage.searchHistory = JSON.stringify(searchHistory);
});
document.querySelector(".inp").addEventListener("focus", () => {
var data = document.querySelector("datalist#searchdata");
data.innerHTML = "";
searchHistory.forEach((search) => {
data.innerHTML = "<option>" data.innerHTML;
data.querySelector("option").innerText = search;
});
});