我正在尝试使用flask、elasticsearch和jquery制作一个类似于google搜索栏的项目,它将根据给定的输入自动给出建议,并且在错误输入时自动给出正确的建议。我已经成功地使用了拼写正确的自动建议,但是当输入错误时,来自elasticsearch的正确建议数据会出现在浏览器控制台中,但不会出现在autocomplete下拉列表中。我使用pyspark将数据插入elasticsearch。我认为问题与js文件有关,但不知道是我的js文件还是jqueryui文件。我做错什么了?
js公司:
$(document).ready(function () {
const $source = document.querySelector('#source');
const $result = document.querySelector('#result');
const typeHandler = function (e) {
$result.innerHTML = e.target.value;
console.log(e.target.value);
$.ajax({
url: "/ajax_call",
type: 'POST',
dataType: 'json',
data: { 'data': e.target.value },
success: function (html) {
var data = html.aggregations.auto.buckets
var bucket = []
$.each(data, (index, value) => {
bucket.push(value.key)
});
console.log(bucket)
$("#source").autocomplete({
source: bucket
});
}
});
}
$source.addEventListener('input', typeHandler)
});
正确输入:
输入错误:
输入错误的正确数据
1条答案
按热度按时间oogrdqng1#
考虑下面的例子。
查看更多:
https://jqueryui.com/autocomplete/#remote-jsonp公司
https://api.jqueryui.com/autocomplete/#option-来源