Skip to content

Instantly share code, notes, and snippets.

@jonasporto
Forked from martijnvbeek/jsbin.untitled.js
Created June 24, 2018 02:30
Show Gist options
  • Save jonasporto/7ab9ed8a8f3c67df72f2cb29cf1f21e5 to your computer and use it in GitHub Desktop.
Save jonasporto/7ab9ed8a8f3c67df72f2cb29cf1f21e5 to your computer and use it in GitHub Desktop.
// source https://jsbin.com
let element = document.querySelector('#auto-complete');
let uri = 'https://example.org/search';
let choice = new Choices(element, {
removeItemButton: false,
itemSelectText: '',
shouldSort: false,
});
let timer = null;
choice.passedElement.addEventListener('search', function (event) {
if (event.detail.value.length > 3) {
if (null !== timer) {
clearTimeout(timer);
}
timer = setTimeout(function () {
let request = new Request(uri + "?term=" + event.detail.value, {
credentials: 'same-origin',
});
fetch(request)
.then(function (response) {
if (200 === response.status) {
response.json().then(function (data) {
choice.setChoices(data, 'id', 'label', true);
});
}
})
.catch(function (error) {
console.log(error);
})
;
}, 1000);
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment