jQuery UI autocomplete - sem mensagem de resultados
Eu estou tentando ter uma mensagem "Nenhum resultado" aparecer no menu suspenso se não houver resultados. Então, por exemplo, se eu digitar "ABCD" no campo de texto, e não houver nenhuma entidade que corresponda, a mensagem "Nenhum resultado". será mostrado.
Depois de olhar através do stackoverflow para as várias maneiras diferentes de realizar isso, e tentando algumas delas, eu ainda não consigo fazê-lo funcionar.
Como posso adicionar uma mensagem "Nenhum resultado" ao menu suspenso quando nenhum resultado é encontrado?
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();
}
});
Eu tentei adicionar uma declaração if () com o seguinte, mas isso não funcionou.
if (data.length === 0) {
// Do logic for empty result.
}
Eu posso substituir a primeira entrada com o texto "Nenhum resultado" se eu fizer o seguinte ...
if (data.indexOf(item) === 0) {
return {
label: "No Results."
}
... mas se eu definirdata.indexOf(item) === -1
nada aparece.
Eu tentei recentemente o seguinte, e quando não há dados, ele entra no loop, no entanto, "Nenhum resultado" não está sendo exibido no menu:
success: function (data) {
response($.map(data, function (item) {
return {
label: item.Company + " (" + item.Symbol + ")",
value: item.Company
}
}));
if (data.length === 0) {
label: "No Results."
}
}
Eu também tentei usar o exemplo abaixo de Andrew Whitaker sem sorte:
O FIDDLE DE ANDREW WHITACKER:http://jsfiddle.net/J5rVP/128/
FONTE:http://blog.andrewawhitaker.com/2012/10/08/jqueryui-autocomplete-1-9/