我在 Bootstrap 中使用 typeahead 为我的应用程序使用 Ajax 从服务器端获取建议。
一切都很好,除了:我正在写正确的输入并得到像“行尸走肉”这样的建议。当我开始输入错误的输入时,比如 walkkkk,除非我按 ESC 键,否则这些建议仍然存在。这让我很恼火.
我检查了服务器端,当我开始输入错误的输入时,服务器没有返回任何内容。
如何自动隐藏建议?
这是相对的js代码:
$('#query').typeahead({
source: function(query, process){
suggestions = {};
labels = [];
$.post('suggest.do', {query: query, limit: '10'}, function(data){
var sugg = jQuery.parseJSON(data).data;
if(sugg == 'NOTHING' || sugg == 'ERROR'){
return;
}
$.each(sugg, function(index, item){
suggestions[item.name] = item;
labels.push(item.name);
});
return process(labels);
});
},
items: 10,
minLength: 1,
updater: function(item){
//irrelative code
},
matcher: function(item){
return true;
},
highlighter: function(item){
var ent = suggestions[item];
var html = '' +
'<div class="entity-block">' +
'<span class="label label-important">' + ent.type + '</span> ' +
'<span class="sugg-name">' + ent.name + '</span>' +
'</div>';
return html;
}
});