嘿,当用户当前查询没有结果时,我正在尝试返回消息!我查遍了整个网络,也有类似的场景,但我似乎无法让它与下面的代码一起工作! 谁能帮我解决这个问题,因为我正在拔头发试图修复它!
我需要保持使用键盘向下滚动结果的能力。
提前致谢。
HTML
<div id="search_box"> <form id="search_form" autocomplete="off" action="" onSubmit="return false;"> <input type="text" id="suggestSearchBox" value="Search by City or Hotel Name" onClick="this.value='';" /> </form> </div>
Javascript 注意:远程数据源称为“dataLocCodes”,它是一个 javascript 数组
// JavaScript Document $(function() { $("#suggestSearchBox").focus().autocomplete(dataLocCodes, { max: 15, selectFirst: true, matchContains: true, formatItem: function(row, i, max){ if (row.hotelId) { return row.accomName + ' - ' + row.city + ' - ' + row.country; } else { return row.city + ' - ' + row.country; } } }).result( function(event, row, formatted) { $("input#suggestSearchBox").val(row.city + ' - ' + row.country); var param = row.locparam; var encoded_url = param.replace(/ /gi,"+"); encoded_url = encoded_url.replace(/&/gi,"amp"); window.location.href = "hotels.html?location=" + encoded_url; }); });
最佳答案
有几种方法可以处理这个问题。您可以创建一个 source
方法,以便在过滤器的结果为空时添加“无结果”作为值,或者处理要显示的 response
事件您的用户界面中没有返回任何结果的消息。如果使用 source
方法,则添加一个选择处理程序以防止“No Result”成为值。
var availableTags = ['Abc', 'Def', 'ghi'];
$('#noresults').autocomplete({
source: function (request, response) {
var responses = $.ui.autocomplete.filter(availableTags, request.term);
if (responses.length == 0) responses.push('No Result');
response(responses);
},
response: function (event, ui)
{
if (ui.content.length == 0) {
console.log('No results');
}
},
select: function (event, ui) {
// don't let no result get selected
return (ui.item.value != 'No Result');
}
});
关于javascript - 使用 Jquery 自动完成处理 "No results",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13181557/