我目前正在开发一个需要自动填充位置的界面。
当前位置列表是通过对JSON对象的AJAX调用获得的,该对象是从具有至少三个字符的搜索参数的URL动态生成的。
有没有办法(我猜测最有可能使用on key up),通过使用输入当前值进行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");
});
答案 0 :(得分:0)
事实证明我完全是错误的做法。
我知道自动完成API允许远程源自动包含输入值的术语URL参数。
结果代码看起来像
$("#originField").autocomplete({
minLength: 3,
source: "/location"
});
所需要的只是源代码后面的代码,用于查找参数'term'而不是'prefix'。
相对更稳定,代码基础更简单,更小。