如何在ajax函数中调用自动完成功能

时间:2013-11-14 09:47:46

标签: jquery ajax autocomplete

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
        });
    }
});

2 个答案:

答案 0 :(得分:1)

它不会填充,因为可用的Tags是字符串,而不是数组类型。你应该把它作为一个数组。更改您的代码,

    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);

答案 1 :(得分:0)

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

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

Autocomplete source param API