@bublikus/native-suggestions
v1.0.35
Published
Datalist with native suggestions for text input fields.
Downloads
30
Maintainers
Readme
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-suggestions
Usage
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
addOnInput
if 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.