Javascript 返回jQuery自动完成中未定义的第一个键笔划的数据

Javascript 返回jQuery自动完成中未定义的第一个键笔划的数据,javascript,jquery,ajax,jquery-autocomplete,Javascript,Jquery,Ajax,Jquery Autocomplete,我正在尝试使用下面说明的方法(即,一个单独的源函数和数据的中间变量)实现jQuery autocomplete。现在我正在尝试将数据获取到autoComplete函数的源部分 下面的代码处理一个致命问题,第一个按键笔划返回一个未定义的returnData变量。有人能解释发生了什么事吗 var returnData; function sourceFn() { return $.ajax({ url: //REST URL, dataType: "jsonp

我正在尝试使用下面说明的方法(即,一个单独的源函数和数据的中间变量)实现jQuery autocomplete。现在我正在尝试将数据获取到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)

});
});
});

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

minLength:0没有这样做。我在AJAX成功函数中一次按键就获得了良好的数据,但它是在sourceFn(请求、响应).done()之后触发的。returnData是从AJAX调用中分配的,如果在第一次按键时未定义,则有可能得不到任何数据。在ajax调用成功时发出警报。