1

ajax 内的自动完成功能不起作用...帮助

$.ajax({
    url: 'url',
    type: 'GET',
    dataType :'jsonp',
    async: false,
    crossDomain:true,
    success: function(data) {
        var resp = data.response;
        var availableTags="[";
        for (i = 0; i <= 10; i++) {
            var postSub = resp.messages.message[i].subject.$;
            if (i  < 10) {
                availableTags += postSub + ",";
            }
            else {
                availableTags += postSub;
            }
        }
        availableTags += "]";
        $("#tags").autocomplete({
            source: availableTags
        });
    }
});
4

2 回答 2

1

它不会填充,因为 availableTags 是一个字符串,而不是数组类型。你应该把它做成一个数组。更改您的代码,例如

    var availableTags = "[";
for (i = 0; i <= 10; i++) {
    var postSub = resp.messages.message[i].subject.$;
    if (i < 10) {
        availableTags +="\"" +postSub + "\",";
    }
    else {
        availableTags +="\""+ postSub+"\"";
    }
}
availableTags += "]";
availableTags=eval(availableTags);
于 2013-11-14T10:12:07.957 回答
0

您不需要自己发出 AJAX 请求,因为该source参数将 URL 作为字符串并会为您完成所有这些工作。尝试这个:

$("#tags").autocomplete({
    source: 'yourURL'
});

自动完成源参数 API

于 2013-11-14T09:52:47.430 回答