Autocomplete Box With Dynamic Suggestions - Awesomecomplete
| File Size: | 8.6 KB |
|---|---|
| Views Total: | 5705 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
An awesome jQuery autocomplete plugin for creating an autocomplete box that automatically displays matched suggestions in a dropdown list while typing something into the input field.
More features:
- Dynamic data rendering.
- Supports both local and remote data source.
- Keyboard interactions.
- Highlights matched suggestions.
- Data sorting.
- Cross-browser.
- And much more.
How to use it:
1. Load the stylesheet awesomecomplete.css for the basic styling of the autocomplete UI.
<link rel="stylesheet" href="awesomecomplete.css" />
2. Create a normal input field on the webpage.
<input type="text" id="friend_id" name="friend[id]" />
3. Place the JavaScript awesomecomplete.js after jQuery library.
<script src="https://code.jquery.com/jquery-1.12.4.min.js"
integrity="sha384-nvAa0+6Qg9clwYCGGPpDQLVpLNn0fRaROjHqs13t4Ggj3Ez50XnGQqc/r8MhnRDZ"
crossorigin="anonymous">
</script>
<script src="jquery.awesomecomplete.js"></script>
4. Define the suggestion data and then attach the autocomplete plugin to the input field:
var myData = [
{ name: 'Oscar Filippelli', email: '[email protected]', phone: '(181) 640-7558' },
{ name: 'Kevin Palmer', email: '[email protected]', phone: '(370) 756-3871' },
{ name: 'Kelly Bratton', email: '[email protected]', phone: '(779) 742-2016' }
...
];
$('#friend_id').awesomecomplete({
staticData: myData
});
5. To fetch data into the autocomplete, use the dataMethod instead.
$('#friend_id').awesomecomplete({
dataMethod: function(term, $this, onDataProxy){
// Data callback. If you're using callbacks to a server,
// call this on the autocompleted text field to complete the
// callback process after you have your matching items.
var onDataProxy = function($this, term)
{
return function(data)
{
processData($this, data, term);
};
}
}
});
6. More configuration options with default values.
$('#friend_id').awesomecomplete({
// active class
activeItemClass: 'active',
// attach to
attachTo: undefined,
// wrap suggestions
wrapSuggestions: false,
// an array of suggestions to ignore
dontMatch: [],
// highlight matched suggestions
highlightMatches: true,
// higlight class
highlightClass: 'match',
// is case sensitive?
ignoreCase: true,
// name field
nameField: 'name',
// CSS class for no results
noResultsClass: 'noResults',
// custom message when no results
noResultsMessage: undefined,
// sort function
sortFunction: defaultSortFunction,
// split terms
splitTerm: true,
// CSS class for suggestion list
suggestionListClass: "autocomplete",
// render function
renderFunction: defaultRenderFunction,
// maximum number of results
resultLimit: 10,
// typing delay
typingDelay: 0,
// value function
valueFunction: defaultValueFunction,
// delimiter
wordDelimiter: /[^\da-z]+/ig
});
7. Available callback functions to handle your data..
$('#friend_id').awesomecomplete({
onComplete: function(dataItem) {
console.log(dataItem);
},
beforeKeyAction: function (activeItem, e) {
console.log(activeItem);
}
afterKeyAction: function (activeItem, e) {
console.log(e.target);
}
});
This awesome jQuery plugin is developed by clint-tseng. For more Advanced Usages, please check the demo page or visit the official website.











