Прежде чем указать мне на них, да, я просмотрел полдюжины сообщений по этой теме, но я все еще не согласен с тем, почему это не работает.
Моя цель - обнаружить, когда автозаполнение дает 0 результатов. Здесь код:
$.ajax({
url:'sample_list.foo2',
type: 'get',
success: function(data, textStatus, XMLHttpRequest) {
var suggestions=data.split(",");
$("#entitySearch").autocomplete({
source: suggestions,
minLength: 3,
select: function(e, ui) {
entityAdd(ui.item.value);
},
open: function(e, ui) {
console.log($(".ui-autocomplete li").size());
},
search: function(e,ui) {
console.log("search returned: " + $(".ui-autocomplete li").size());
},
close: function(e,ui) {
console.log("on close" + $(".ui-autocomplete li").size());
$("#entitySearch").val("");
}
});
$("#entitySearch").autocomplete("result", function(event, data) {
if (!data) { alert('nothing found!'); }
})
}
});
Сам поиск отлично работает, я могу получить результаты, чтобы они отображались без проблем. Насколько я понимаю, я должен перехватить результаты с помощью обработчика автозаполнения ( "результат" ). В этом случае он никогда не срабатывает вообще. (Даже общее предупреждение или console.log, который не ссылается на количество результатов, никогда не срабатывает). Открытый обработчик событий показывает правильное количество результатов (когда есть результаты), а обработчики событий поиска и закрытия сообщают о размере результата, который всегда находится на одном шаге.
Я чувствую, что мне не хватает чего-то очевидного и вопиющего, но я просто этого не вижу.