Autocomplete demos

Using JSON as a source of suggestions
<input id="json-source" type="text" class="form-control" />
var source = [ 'ActionScript', 'AppleScript', 'Asp', 'BASIC', 'C', 'C++', 'Clojure', 'Ceylon', 'COBOL', 'ColdFusion', 'Erlang', 'Fortran', 'Groovy', 'Haskell', 'Java', 'JavaScript', 'Lisp', 'Perl', 'PHP', 'Python', 'Ruby', 'Scala', 'Scheme' ];

$('#json-source').autocomplete({ source: source });
Using a function as a source of suggestions
<input id="function-source" type="text" class="form-control" />
var asyncSuggest = function (request, response) {
  setTimeout(function () {
    response($.ui.autocomplete.filter(source, request.term));
  }, 1000);
};

$('#function-source').autocomplete({ source: asyncSuggest });
Using a ordered/unordered list as a source of suggestions
<input id="list-source" type="text" class="form-control" />

<ul id="list-suggestions" style="display: none">
  <li><i class="fa fa-heart"></i> Java</i></li>
  <li><i class="fa fa-flag"></i> Haskell</li>
</ul>
$('#list-source').autocomplete({ source: '#list-suggestions' });
Table layout with a table as a source of suggestions
<input id="table-source" type="text" class="form-control" />

<table id="table-suggestions" style="display: none">
  <tbody>
    <tr data-label="Java">
      <td><i class="fa fa-heart"></i></td>
      <td>Java</td>
      <td><i>my favorite language</i></td>
    </tr>
    <tr data-label="Haskell">
      <td><i class="fa fa-flag"></i></td>
      <td>Haskell</td>
      <td>functional language</td>
    </tr>
  </tbody>
</table>
$('#table-source').autocomplete({ source: '#table-suggestions' });
Caching suggestions
<input id="cached" type="text" class="form-control" />
$('#cached').autocomplete({
  cached: true,
  minLength: 2,
  source: function (request, response) {
    setTimeout(function () {
      response($.ui.autocomplete.filter(source, request.term));
    }, 1000);
  }
});
Auto-Focus
<input id="auto-focus" type="text" class="form-control" />
$('#auto-focus').autocomplete({ source: source, autoFocus: true });
Auto-Fill
<input id="auto-fill" type="text" class="form-control" />
$('#auto-fill').autocomplete({ source: source, autoFill: true });
Auto-Focus Auto-Fill
<input id="auto-focus-fill" type="text" class="form-control">
$('#auto-focus-fill').autocomplete({ source: source, autoFocus: true, autoFill: true });
Support for tokenizing
<input id="token" type="text" class="form-control" />
$('#token').autocomplete({
  source: source,
  token: ',',
  minLength: 1
});
Autocomplete can have a button
<input id="button" type="text" class="form-control" />
$('#button').autocomplete({
  source: source,
  showButton: true
});
Updating of DOM-based suggestions
<input id="updatable" type="text" class="form-control"/>

<ul id="updatable-suggestions" style="display: none">
  <li>Java</li>
  <li>Haskell</li>
</ul>
var counter = 1;

function updateDom() {
  $('#updatable-suggestions').append($('<li>Test' + counter++ + '</li>'));
}

$('#updatable').autocomplete({
  source: '#updatable-suggestions',
  update: function (request, done) {
    setTimeout(function () {
      updateDom();
      done();
    }, 1000);
  }
});