Javascript 提前输入minlengh 0建议不显示猎犬
我正在处理自动建议任务,我有这样的要求,比如如果提前输入建议文本框为空,则在建议列表上显示默认选项,如下面的JSFIDLE 这个例子非常有效。但我从远程检索到一个建议列表,使用我的代码下面列出的“猎犬不工作”:Javascript 提前输入minlengh 0建议不显示猎犬,javascript,jquery,autosuggest,typeahead.js,typeahead,Javascript,Jquery,Autosuggest,Typeahead.js,Typeahead,我正在处理自动建议任务,我有这样的要求,比如如果提前输入建议文本框为空,则在建议列表上显示默认选项,如下面的JSFIDLE 这个例子非常有效。但我从远程检索到一个建议列表,使用我的代码下面列出的“猎犬不工作”: var sos_adapt = new Bloodhound({ datumTokenizer: function(d) { return Bloodhound.tokenizers.whitesp
var sos_adapt = new Bloodhound({
datumTokenizer: function(d) {
return Bloodhound.tokenizers.whitespace(d.value);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: 'appsearch?ty=so&cid=%CID&query=%QUERY',
replace: function(url, query) {
return url.replace('%QUERY', query).replace('%CID', customer_id);
},
filter: function(sos) {
return $.map(sos, function(sos) {
return {
so_desc: sos.so_desc,
so_no: sos.so_no,
so_details: sos.so_no + " : " + sos.so_desc,
customer_id: sos.customer_id,
customer_details: sos.customer_id + " : " + sos.customer_name
};
});
},
ajax: {
global: false,
beforeSend: function(xhr)
{
}
}
}
});
//initialize the bloodhound suggestion engine
sos_adapt.initialize();
$('#so_details').typeahead(null, {
displayKey: 'so_no',
source: sos_adapt.ttAdapter(),
minLength: 0,
templates: {
empty: [
'<div class="sug_items">',
'unable to find any so#!',
'</div>'
].join('\n'),
suggestion: Handlebars.compile([
'<div class="sug_items"><p class="repo-language">SO# : {{so_no}}</p>',
'<p class="repo-name">{{so_desc}}</p></div>'
].join(''))
}
});
这段代码摘自上面的JSFIDLE示例,有人能指导我如何做到这一点吗?任何帮助都将不胜感激。那么,它能带来什么结果呢?您正在使用远程查询填充结果。在默认焦点上,提供一系列建议或使用
预回迁
method@Edward感谢您的回复,我想要的是猎犬集成,而不是预取方法。我的问题是当焦点上的文本框为空时,不调用远程url请求。但是,当用户在文本框中键入文本时,它会调用。你们明白我的问题是什么吗?我找到了一个类似问题的答案。试试这个链接。[使用typeahead和Brandhound单击显示完整建议列表][1][1]:
$("#so_details").on("click", function() {
var ev = $.Event("keydown");
ev.keyCode = ev.which = 40;
$(this).trigger(ev);
return true;
});