使用ajax调用进行搜索框搜索的自动建议
Auto Suggestion for a searchbox search using ajax call
我有一个搜索框,一旦用户在其中点击搜索词,我就需要进行ajax调用,并且需要处理响应,然后我可以为用户更新搜索词。
我试着使用javascript自动完成功能,但问题是假设我在searchbox中键入单词"abc",我的函数会调用ajax,它只返回一些建议。如果用户在进行ajax调用后停止键入,并且获取了结果,则自动完成不会显示用户可用的选项。
这是我的密码。
<input type="text" id="searchBox" value="search" />
function getSuggestions(query){
SC.get('/search/suggest', { q: query, limit: 10, highlight_mode: 'offsets', linked_partitioning: 1, offset: 0}, function(tracks) {
if(tracks.length<1){
return;
}
var i = 0;
tracks.suggestions.forEach(function(track){
if(track.kind=="track"){
suggestList[i] = track.query;
i++;
}
});
$( "#searchBox" ).autocomplete({
source: suggestList
});
});
}
此函数用于侦听keyup。
$('#searchBox').keyup(function(e){
var query = $(this).val();
if(query.length<2)
return;
setTimeout(function() {
getSuggestions(query);
}, 1000);
});
但是,只要我再按下一个按钮,如果ajax调用的当前结果与它建议的自动完成的新搜索词相匹配。
幸运的是,我检查了几个插件,所有插件都希望搜索结果是特定的JSON格式。
如果有人能帮我,那将是有帮助的。
如果你的潜在建议列表不是很大,那么它可能值得预先获取
使用typeahead.js(下面链接中的示例)相当简单
$('#input').typeahead([
{
name: 'countries',
prefetch: '/countries.json',
}
]);
这个博客提供了的一些功能概述
https://blog.twitter.com/2013/twitter-typeaheadjs-you-autocomplete-me
相关文章:
- 在javascript中调用自定义谷歌搜索标签时出现问题
- 我需要从jsp页面向struts操作类进行ajax调用,以获得一些数据,如名称搜索
- 在slack nestor bot回复中调用giphy搜索
- 减少即时搜索中的 ajax 调用次数
- (html) Google 地图搜索结果与 Maps/地点 API 调用之间的差异(结果较少)
- Select2 以编程方式设置搜索词并打开包含相关结果的下拉列表(无 ajax 调用)
- 尝试取消反弹搜索函数调用会导致不会将任何事件传递给函数
- 从文本链接调用谷歌自定义搜索叠加层
- Google Maps API javascript:附近搜索回调函数不调用
- 点击选项卡调用jQuery搜索
- 维基百科使用JavaScript搜索API调用
- ajax搜索函数使用$(window).bind('hashchange',function(e)调用了
- 带有API.js的语义UI搜索选择下拉菜单-未发生API调用
- 我可以使用按钮来调用函数,但不能从搜索设置的if语句中调用,但可以调用任何其他函数
- 使用变量或JavaScript动态调用HTML文件以给出搜索结果
- 如何在Spring MVC中使用AJAX调用时保留搜索过滤器值
- 如何在webview android SDK中调用谷歌搜索按钮
- Ebay Finding API:通过API调用获得的结果数量与在Ebay网站中使用相同过滤器进行手动搜索的结果数量不同
- Angular, reangular——如果有更多的当前搜索进来,就中止搜索调用
- Chrome扩展:如何绑定/挂钩到浏览器的“搜索调用”事件