frontend/static/search.js (view raw)
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 | const search = document.getElementById("search");
const results = document.getElementById("results");
search.addEventListener("submit", function (ev) {
const url = new URL(this.action);
url.search = new URLSearchParams(new FormData(this)).toString();
const res = fetch(url, {
headers: {
fetch: "true",
},
})
.then(function (res) {
window.history.pushState(null, null, url);
if (res.ok) {
return res.text();
} else {
throw new Error(res.statusText);
}
})
.then(function (html) {
results.innerHTML = html;
})
.catch(function (error) {
console.error("fetch failed", error);
});
ev.preventDefault();
});
|