JQuery UI自动完成的动态源代码

时间:2013-09-10 16:29:02

标签: jquery-ui jquery

我目前正在开发一个需要自动填充位置的界面。

当前位置列表是通过对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");
            });

1 个答案:

答案 0 :(得分:0)

事实证明我完全是错误的做法。

我知道自动完成API允许远程源自动包含输入值的术语URL参数。

结果代码看起来像

$("#originField").autocomplete({
    minLength: 3,
    source: "/location"
});

所需要的只是源代码后面的代码,用于查找参数'term'而不是'prefix'。

相对更稳定,代码基础更简单,更小。