Как добавить title в autocomplete

Есть простой способ, чтобы добавить к элементам autocomplete title. Это может пригодится, если вы к примеру в самом списке показываете сокращенные названия предметов, а при наведении мыши хотите чтобы было показано развернутое описание. 

Как сделать autocomplete описано в этой статье:


Сейчас мы рассмотрим только то, как добавить title к результатам выдачи из предыдущего примера.

 

Для начала в php файле в массиве результатов добавим поле title:

$res = [];
//тут должен быть foreach для всех элементов результата (упростили для краткости)
$res[] = [
'id' => $object->getId(),
'label' => $object->getLabel(),
'value' => $object->getValue(),
'title' => $codeobject>getTitle(),
];

header("Content-type:application/json");
echo json_encode($res);
return $res;

В инициализации autocomplete добавим изменение. После minLength (из примера в предыдущей статье) добавим событие create:

minLength: 3,
create: function (event,ui) {
$(this).data('ui-autocomplete')._renderItem = function (ul, item) {
return $('<li title="' + item.title + '" class="ui-menu-item" >')
.append('<a class="ui-corner-all">' + item.label + '</a>')
.appendTo(ul);
};
},

_renderItem   - это как раз то, где мы можем записать как будет выглядеть шаблон элемента для autocomplete. 

Комментарии

Комментариев пока нет, вы можете оставить свой: