0

我正在尝试使用下面说明的方法(即单独的源函数和数据的中间变量)来实现 jQuery 自动完成。现在我正在尝试将数据获取到 autoComplete 函数的源部分。

下面的代码适用于一个致命问题,第一次击键返回一个未定义的returnData变量。任何人都可以解释发生了什么吗?

var returnData;
function sourceFn() {
    return $.ajax({
        url: //REST URL,
        dataType: "jsonp",
        async: false,
        data: {
            featureClass: "P",
            style: "full",
            maxRows: 12,
            name_startsWith: request.term
        },
        success: function (data) {
            returnData = data;
        },
    })
}
}

$("input#search-input").bind("autocompleteselect", jQuery.proxy(function (event, ui) {}, this)).autocomplete({
    appendTo: "#yt-result-list",
    source: function (request, response) {
        sourceFn(request, response).done(alert("returnData: " + JSON.stringify(returnData)));

    }
}).data("autocomplete")._renderItem = jQuery.proxy(function (ul, item) {
    alert(item);
}, this)

});
});
});
4

1 回答 1

0

尝试minLength: 0在初始化自动完成时指定,检查 returnData 的值以查看是否从服务器获取 json(使用 firebug)。看起来你没有从只有一个字母的 ajax 调用中得到,自动完成正在sourceFn()正确触发。

于 2013-03-16T00:31:24.120 回答