var projects = [{
value: "jquery",
label: "jQuery",
desc: "the write less, do more, JavaScript library",
icon: "jquery_32x32.png",
disabled: false
},
{
value: "jquery-ui",
label: "jQuery UI",
desc: "the official user interface library for jQuery",
icon: "jqueryui_32x32.png",
disabled: true
},
{
value: "sizzlejs",
label: "Sizzle JS",
desc: "a pure-JavaScript CSS selector engine",
icon: "sizzlejs_32x32.png",
disabled: false
}
];
$("#project").autocomplete({
minLength: 0,
source: projects,
focus: function(event, ui) {
if(ui.item.disabled) {
console.log("Preventing focus.");
return false;
} else {
return true;
}
},
select: function(event, ui) {
if(!ui.item.disabled) {
$("#project").val(ui.item.label);
} else {
console.log("Preventing selection.");
}
return false;
}
})
.autocomplete("instance")._renderItem = function(ul, item) {
return $("<li>")
.append("<div class='"+(item.disabled ? 'ui-state-disabled' : '')+"'>" + item.label + "<br>" + item.desc + "</div>")
.appendTo(ul);
};
.ui-menu-item-wrapper.ui-state-disabled {
background-color: #aaa;
font-weight: bold;
}
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<input id="project">