我正在编写代码来自动完成我网站上的城市搜索。问题是 ajax 函数一旦被调用,就会阻止对 keyup 事件的后续调用。实际上,一旦输入中达到三个字符,ajax 调用就会从我正在使用的 API 中获取数据(在这一点上一切正常),但随后发生了一些事情,keyup 事件无法再次调用(我的控制台。日志未被触发)。
这是我的 HTML 代码:
<input type="text" id="prova" class="form-control search-slt" placeholder="Enter name1..." data-behavior="autocomplete" />
这是我的 JS 代码:
$(function () {
var minlength = 3;
$('#prova').keyup(function (e) {
var that = this,
value = $(this).val();
console.log("keyup");
if (value.length >= minlength ) {
searchRequest = $.ajax({
type: "GET",
url: "https://nominatim.openstreetmap.org/search?q=" + $("#prova").val() + "&format=json",
//async: false,
success: function(results) {
console.log(results);
var aList = results;
var aOptions = [];
for (i = 0; i < aList.length; i++) {
//optKey = aList[i].geometry.coordinates[0] + ',' + aList[i].geometry.coordinates[1];
optLabel = aList[i].display_name;
aOptions.push(optLabel);
}
var options = {
data: aOptions
};
console.log(options);
$("#prova").easyAutocomplete(options);
}
});
}
});
});
我调试了代码,我意识到该easyAutocomplete函数是阻止后续 keyup 调用的函数。发生了一些我不明白的事情。easyAutocomplete是一个 Rails gem,但它只不过是 jQuery 的 easyAutocomplete 插件的包装器。options你能告诉我当我将数组传递给函数时会发生什么吗easyAutocomplete?
蝴蝶不菲
慕莱坞森
相关分类