@bublikus/native-suggestions v1.0.35
Native Suggestions
Datalist with native suggestions for text input fields.
You can customize native autocomplete suggestions with your own values.
- For mobile devices suggestions take part of the browser native keyboard.
- For desktop it expands native autocomplete dropdown.
| Safari | Safari | Chrome | Chrome |
|---|---|---|---|
Demo
Installing
npm i @bublikus/native-suggestionsUsage
How to use:
...or pure js:
import NativeSuggestions from '@bublikus/native-suggestions'
const form = document.getElementById('form')
const inputs = form.querySelectorAll('input')
inputs.forEach(input => new NativeSuggestions(input))Template example
<form id="form">
<input name="name1" type="text"/>
<input name="name2" type="email"/>
<input name="name3" type="tel"/>
<input name="name4" type="search"/>
<input name="name5" type="number"/>
</form>Config
new NativeSuggestions(input: HTMLInputElement, config?: Config)
// Default Config:
{
storageKey: 'native-suggestions',
folder: 'other',
inputKey: null,
listLength: 10,
saveLength: 10,
mobileOnly: true,
addOnInput: true,
inputTypes: ['text', 'number', 'search', 'email', 'tel'],
}| Prop | Description |
|---|---|
| storageKey | General key in localStorage |
| folder | Specific key for a set of inputs |
| inputKey | Custom or generated from an input name attribute! |
| listLength | How many suggestions to show in select |
| saveLength | How many suggestions to save for 1 input |
| mobileOnly | I want to see only within keyboard (not dropdown) |
| addOnInput | Turn off if you want to use only your own values |
| inputTypes | Allowed types for suggestions |
Custom suggestions
You can setup your own suggestions in the storage.
Turn off
addOnInputif you don't want to add new values on input.
NativeSuggestions.setStore(values, config?)
// Values:
{
name1: ['value 1'],
name2: ['value 2', 'value 3'],
}
// Default Config:
{
storageKey: 'native-suggestions',
folder: 'other',
}Behavior
On change event it puts an array of your last typed values to the localStorage under [storageKey] key and [folder] subkey specifically tying to an input based on its name attribute.
It creates next structure:
{
[storageKey]: {
[folder]: {
[inputKey]: ['value 1']
},
other: {
[inputKey]: ['value 2', 'value 3']
}
}
}The benefit of that structure is that you can define specific suggestions for an active organization or a user.
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago