Easy jQuery Autocomplete Plugin with Character Highlight Support - immybox

File Size: 19.6 KB
Views Total: 7233
Last Update:
Publish Date:
Official Website: Go to website
License: MIT
Easy jQuery Autocomplete Plugin with Character Highlight Support - immybox

immybox is a lightweight jQuery plugin that allows you to easily create autocomplete/autosuggest select boxes for text input fields. Enter a character into the text field and you will see a pre-populated list of suggestions, with support for character highlight.

Basic Usage:

1. Include jQuery library and the jQuery immybox plugin's stylesheet & JavaScript in the web page.

<link rel="stylesheet" href="immybox.css">

<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="jquery.immybox.min.js"></script>

2. Create a regular text field on your web page.

<input id="demo" type="text">

3. Call the plugin on the text field you just created and create a pre-populated list of suggestions using Javascript array object.

choices: [
  {text: 'Alabama', value: 'AL'},
  {text: 'Alaska', value: 'AK'},
  {text: 'Arizona', value: 'AZ'},

defaultSelectedValue: 'AL'


4. All the options and defaults


// An array of choice objects used to populate the autosuggest list. 
// Each object should have at least text and value properties.
choices: [],

// The maximum number of choices to show in the autosuggest list.
maxResults: 50,

// Show a small down arrow on the right side of the input.
showArrow: true,

// Should the results list show on click, or wait for user input before showing.
openOnClick: true,

// The value that will be selected by default in the autocomplete list. 
defaultSelectedValue: undefined,

// A function for determining whether or not a choice matches the entered query. 
filterFn: function(query) {
  return function(choice) {
    return choice.text.toLowerCase().indexOf(query.toLowerCase()) >= 0;

// A function for formatting choices.
formatChoice: function(choice, query) {
  var head, i, matchedText, tail, _ref;
  i = choice.text.toLowerCase().indexOf(query.toLowerCase());
  if (i >= 0) {
    matchedText = choice.text.slice(i, i + query.length);
    _ref = choice.text.split(matchedText), head = _ref[0], tail = 2 <= _ref.length ? __slice.call(_ref, 1) : [];
    return "" + head + "<span class='highlight'>" + matchedText + "</span>" + (tail.join(matchedText));
  } else {
    return choice.text;


Change logs:


  • v0.4.1


  • Fixed a bug from unsanitized input to regex

This awesome jQuery plugin is developed by immense. For more Advanced Usages, please check the demo page or visit the official website.