我目前正在开发一个需要自动完成位置的界面。
位置列表当前是通过对 JSON 对象的 AJAX 调用获得的,该对象是从具有至少三个字符的搜索参数的 URL 动态生成的。
有没有办法(我猜最有可能使用 on 键),通过使用输入当前值进行 ajax 调用然后在自动完成选择中返回这些值来填充自动完成,而不是依靠 jquery 创建自动完成列表从它的源头。
我目前所拥有的似乎效率低下,并且无法按您的预期工作(出于某种原因,自动完成仅出现在四个字符之后)。
function buildAutoComplete(fieldId) {
var inputValue = $("#" + fieldId).val()
var resultsList = []
if(inputValue.length > 2) {
get("/location?prefix=" + inputValue,inputHit,inputMiss);
}
function inputHit(result) {
for(var i=0; i<result.length; i++) {
resultsList[i] = result[i].display_text
}
$("#" + fieldId).autocomplete({
source: resultsList
});
}
function inputMiss() {
}
}
$("#originField").keyup(function() {
buildAutoComplete("originField");
});