jQuery 自动完成 ajax 输入错误时无法进行自动更正
jQuery autocomplete ajax not working for autocorrection when wrong input is given
我正在尝试使用 Flask、Elasticsearch 和 jQuery 制作一个类似于 Google 的搜索栏的项目,它会根据给定的输入自动提供建议,并在出现问题时自动给出正确的建议输入错误。我已经成功地使用正确的拼写进行自动建议,但是当输入错误时,来自 Elasticsearch 的正确建议数据会出现在浏览器控制台中,但不会出现在自动完成下拉列表中。我使用 PySpark 将数据插入 Elasticsearch。我认为问题与 JS 文件有关,但不知道它是我的 JS 文件还是 jquery-ui 文件。我做错了什么?
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)
});
正确输入:
输入错误:
正确输入的数据
考虑以下示例。
$(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);
}
});
}
});
});
查看更多:
我正在尝试使用 Flask、Elasticsearch 和 jQuery 制作一个类似于 Google 的搜索栏的项目,它会根据给定的输入自动提供建议,并在出现问题时自动给出正确的建议输入错误。我已经成功地使用正确的拼写进行自动建议,但是当输入错误时,来自 Elasticsearch 的正确建议数据会出现在浏览器控制台中,但不会出现在自动完成下拉列表中。我使用 PySpark 将数据插入 Elasticsearch。我认为问题与 JS 文件有关,但不知道它是我的 JS 文件还是 jquery-ui 文件。我做错了什么?
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)
});
正确输入:
输入错误:
正确输入的数据
考虑以下示例。
$(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);
}
});
}
});
});
查看更多: