This component will be useful to show hints while typing something in the input
To create autocomplete
input widget just paste following code as is
<div class="form-autocomplete" data-autocomplete='["First example", "Second example"]'>
<div class="form-autocomplete-input form-input">
<input class="form-input" type="text" placeholder="Typing here...">
</div>
</div>
You may use different values which come from Javascript function or load from API
For example, the following code loads auto-complete options from a function
<div class="form-autocomplete" data-autocomplete='loadData'>
<div class="form-autocomplete-input form-input">
<input class="form-input" type="text" placeholder="Typing here...">
</div>
</div>
function loadData() {
return ['First value', 'Second value', 'Third value'];
}
The following code loads auto-complete options from an API
<div class="form-autocomplete" data-autocomplete='loadDataJson'>
<div class="form-autocomplete-input form-input">
<input class="form-input" type="text" placeholder="Typing here...">
</div>
</div>
function loadDataJson() {
return fetch('https://jsonplaceholder.typicode.com/users')
.then(function (response) {
return response.json();
})
.then(function (users) {
users = users.map(function (user) {
return user.name;
});
return Promise.resolve(users);
});
}
The following code loads auto-complete options from an API after input value changed
<div class="form-autocomplete" data-autocomplete data-onchange='searchData'>
<div class="form-autocomplete-input form-input">
<input class="form-input" type="text" placeholder="Typing here...">
</div>
</div>
function searchData(query, item) {
fetch('https://jsonplaceholder.typicode.com/users')
.then(function (response) {
return response.json();
})
.then(function (users) {
users = users.map(function (user) {
return user.name;
});
users.filter(function (user) {
return user.match(
new RegExp(`${query}`, 'gui')
);
});
item.options = users;
item.refresh();
});
}