Autocomplete Box With Dynamic Suggestions - Awesomecomplete
File Size: | 8.6 KB |
---|---|
Views Total: | 5584 |
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.