jQuery UI & Autocomplete: Custom data and display in drop down

This entry is part 7 of 7 in the series jQuery UI Autocomplete

jQuery UI Autocomplete – Custom data and display

You can use your own custom data formats and displays by simply overriding the default focus and select actions.

Try typing “j” to get a list of projects or just press the down arrow.

<!doctype html>
<html lang='en'>
    <meta charset='utf-8'>
    <title>jQuery UI Autocomplete - Custom data and display</title>
    <link rel='stylesheet' href='//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css'>
    <script src='//code.jquery.com/jquery-1.10.2.js'></script>
    <script src='//code.jquery.com/ui/1.10.4/jquery-ui.js'></script>
    <link rel='stylesheet' href='https://codecrawl.com/code/jqueryui/jqueryui_style.css'>
        #project-label {
            display: block;
            font-weight: bold;
            margin-bottom: 1em;

        #project-icon {
            float: left;
            height: 32px;
            width: 32px;

        #project-description {
            margin: 0;
            padding: 0;
        $(function () {
            var projects = [
                    value: 'jquery',
                    label: 'jQuery',
                    desc: 'the write less, do more, JavaScript library',
                    icon: 'jquery_32x32.png'
                    value: 'jquery-ui',
                    label: 'jQuery UI',
                    desc: 'the official user interface library for jQuery',
                    icon: 'jqueryui_32x32.png'
                    value: 'sizzlejs',
                    label: 'Sizzle JS',
                    desc: 'a pure-JavaScript CSS selector engine',
                    icon: 'sizzlejs_32x32.png'

                minLength: 0,
                source: projects,
                focus: function (event, ui) {
                    return false;
                select: function (event, ui) {
                    $('#project-icon').attr('src', 'images/' + ui.item.icon);

                    return false;
                    .data('ui-autocomplete')._renderItem = function (ul, item) {
                return $('<li>')
                        .append('<a>' + item.label + '<br>' + item.desc + '</a>')

<div id='project-label'>Select a project (type 'j' for a start):</div>
<img id='project-icon' src='http://jqueryui.com/resources/demos/autocomplete/images/transparent_1x1.png'
     class='ui-state-default' alt=''>
<input id='project'>
<input type='hidden' id='project-id'>

<p id='project-description'></p>

Try The Code
Series Navigation<< jQuery UI & Autocomplete: Multiple entries with values