Javascript jQuery autocomplete ajax在输入错误时不进行自动更正
我正在尝试使用Flask、Elasticsearch和jQuery制作一个类似于谷歌搜索栏的项目,它将根据给定的输入自动给出建议,并且在错误输入时自动给出正确的建议。我成功地使用了拼写正确的自动建议,但当输入错误时,Elasticsearch的正确建议数据会出现在浏览器控制台中,但不会出现在“自动完成”下拉列表中。我使用PySpark将数据插入Elasticsearch。我认为问题与JS文件有关,但不知道是我的JS文件还是jqueryui文件。我做错了什么 JS:Javascript jQuery autocomplete ajax在输入错误时不进行自动更正,javascript,jquery,elasticsearch,flask,jquery-ui,Javascript,Jquery,elasticsearch,Flask,Jquery Ui,我正在尝试使用Flask、Elasticsearch和jQuery制作一个类似于谷歌搜索栏的项目,它将根据给定的输入自动给出建议,并且在错误输入时自动给出正确的建议。我成功地使用了拼写正确的自动建议,但当输入错误时,Elasticsearch的正确建议数据会出现在浏览器控制台中,但不会出现在“自动完成”下拉列表中。我使用PySpark将数据插入Elasticsearch。我认为问题与JS文件有关,但不知道是我的JS文件还是jqueryui文件。我做错了什么 JS: $(document)
$(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)
});
正确输入:
$(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)
});
输入错误:
$(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)
});
正确输入错误的数据
考虑以下示例
$(function() {
const $source = $('#source');
const $result = $('#result');
$source.autocomplete({
source: function(request, response) {
$.ajax({
url: "/ajax_call",
type: 'POST',
dataType: 'json',
data: {
'data': request.term
},
success: function(html) {
var data = html.aggregations.auto.buckets;
var bucket = [];
$.each(data, (index, value) => {
bucket.push(value.key);
});
console.log(bucket);
response(bucket);
}
});
}
});
});
请参阅更多: