gpt4 book ai didi

javascript - 为什么 typeahead.js 没有显示 ajax 响应中的所有项目?

转载 作者:行者123 更新时间:2023-11-30 12:15:30 24 4
gpt4 key购买 nike

我正在尝试使用 typeahead.js 在表单中显示 ajax 结果。起初我尝试使用 Bloodhound 默认带有 typeahead 的建议引擎。但它并没有显示服务器返回的所有项目(我只显示 1 个或有时两个)。

以下是我使用的代码;

 $('.autocomplete').livequery(function () {
var input = this;
$(input).removeClass('autocomplete');

var _source = new Bloodhound({
limit: 25,
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('Value'),
queryTokenizer: Bloodhound.tokenizers.obj.whitespace('Text'),
prefetch: $(input).attr('data-source'),
remote: {
url: $(input).attr('data-source') + '?query=%QUERY',
wildcard: '%QUERY'
}
});

_source.initialize();

$(input).typeahead({
hint: true,
highlight: true,
minLength: 0
}, {
displayKey: 'Text',
source: _source,
templates: {
notFound: 'No results found'
}
});

$(input).on('typeahead:selected', function (evt, item) {
$(input).parent().parent().find('input[type="hidden"]').val(item.Value);
});
})

然后我尝试在没有 Bloodhound 的情况下使用以下代码来完成它,结果没有任何变化;

 $('.autocomplete').livequery(function () {
var input = this;
$(input).removeClass('autocomplete');

$(input).typeahead({
hint: true,
highlight: true,
limit: 50,
minLength: 0
}, {
displayKey: 'Text',
source: function (query, syncResults, asyncResults) {
$.get($(input).attr('data-source') + '?query=' + query, function (data) {
asyncResults(data);
});
},
templates: {
notFound: 'No results found'
}
});

$(input).on('typeahead:selected', function (evt, item) {
$(input).parent().parent().find('input[type="hidden"]').val(item.Value);
});
})

服务器对请求的响应如下;

[
{
"Text": "Marketing Executive",
"Value": 1
},
{
"Text": "CEO",
"Value": 5
},
{
"Text": "Manager",
"Value": 6
},
{
"Text": "Accountant",
"Value": 7
}]

这有什么问题吗?以及如何让 typeahead 显示服务器返回的所有结果?

最佳答案

这是控件中的错误。这可以通过更改 typeahead.bundle.js

中的以下代码来解决

切换 1723 和 1724 行,看起来像这样

that._append(query, suggestions.slice(0, that.limit - rendered));
rendered += suggestions.length;

感谢帖子 Bootstrap Typeahead not showing hints as expected

关于javascript - 为什么 typeahead.js 没有显示 ajax 响应中的所有项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32535411/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com