автозаполнение пользовательского интерфейса jQuery - нет результатов
Я пытаюсь, чтобы в выпадающем меню появлялось сообщение «Нет результатов», если результатов нет. Так, например, если я ввожу «ABCD» в текстовое поле, и не существует ни одного объекта, который соответствует, сообщение «Нет результатов». будет отображаться.
После просмотра stackoverflow для различных способов достижения этой цели и пробуя некоторые из них, я все еще не могу заставить его работать.
Как добавить сообщение «Нет результатов» в выпадающее меню, если результаты не найдены?
JQuery:
$element.autocomplete({
source: function (request, response) {
$.ajax({
url: thUrl + thQS,
type: "get",
dataType: "json",
cache: false,
data: {
featureClass: "P",
style: "full",
maxRows: 12
},
success: function (data) {
response($.map(data, function (item) {
if (data.indexOf(item) === -1) {
return { label: "No Results." }
} else {
return {
label: item.Company + " (" + item.Symbol + ")",
value: item.Company
}
}
}));
}
});
},
minLength: that.options.minLength,
select: function (event, ui) {
reRenderGrid();
}
});
Я попытался добавить оператор if () со следующим, но это не сработало.
if (data.length === 0) {
// Do logic for empty result.
}
Я могу переписать первую запись с текстом «Нет результатов», если я сделаю следующее ...
if (data.indexOf(item) === 0) {
return {
label: "No Results."
}
... но если я установлюdata.indexOf(item) === -1
ничего не появляется
Я только недавно попробовал следующее, и когда нет данных, они попадают в цикл, однако «Нет результатов» не отображается в меню:
success: function (data) {
response($.map(data, function (item) {
return {
label: item.Company + " (" + item.Symbol + ")",
value: item.Company
}
}));
if (data.length === 0) {
label: "No Results."
}
}
Я также попытался использовать приведенный ниже пример от Эндрю Уитакера без удачи:
ЭНДРЮ УИТАКЕРСКАЯ СТОРОНА:http://jsfiddle.net/J5rVP/128/
ИСТОЧНИК:http://blog.andrewawhitaker.com/2012/10/08/jqueryui-autocomplete-1-9/