【问题标题】:Autocomplete jquery cannot print suggestions自动完成 jquery 无法打印建议
【发布时间】:2015-12-08 04:01:23
【问题描述】:

我用python创建了一个返回这个的函数:

 callback({"query": "can", "suggestions": "['Cane','Canal','Candy','Canis','Canoe','Canada','Canary','Canola','Cantil','Decane','Toucan','Candida','Candiru','Candoia','Canidae','Cannula','Indican','Pelican','Scanner','Acanthis','']", "data": "['Cane','Canal','Candy','Canis','Canoe','Canada','Canary','Canola','Cantil','Decane','Toucan','Candida','Candiru','Candoia','Canidae','Cannula','Indican','Pelican','Scanner','Acanthis','']"});

我正在尝试使用 devbridge https://www.devbridge.com/sourcery/components/jquery-autocomplete/ 的自动完成功能

我设法用 ajax 得到了这样的列表:

   $.ajax({ 
     url: url, 
     dataType:"jsonp",
     jsonpCallback: 'callback',

     success: function(data) { 
        alert(data.suggestions);

             } 
    });

但我不能让它与自动完成一起工作。我将函数返回更改为回调,因为跨域 url 有问题,这也是我使用 jsonp 的原因。我还尝试将 data.suggestions 添加到数组中

             var availableTags =   data.suggestions;
             var stri = availableTags.replace(/["']/g, "");
             availableTags = stri.replace("[","");
             stri = availableTags.replace("]","");
             suggestionsArray = stri.split(",");

并像这样在jquery中打印:

 $( "#query" ).autocomplete({
  lookup: suggestionsArray
});

但它不起作用。如果我手动创建它

var suggestionsArray = ["cane","Canal"] 

它正在工作。请帮忙。

【问题讨论】:

    标签: jquery ajax autocomplete jsonp


    【解决方案1】:

    您提到的教程显示了将数据源提供给自动完成对象的两种方法。

    您需要 AJAX,因此您应该以这种方式使用它。该网站的相关示例:

    $('#autocomplete').autocomplete({
        serviceUrl: '/autocomplete/countries',
        onSelect: function (suggestion) {
            alert('You selected: ' + suggestion.value + ', ' + suggestion.data);
        }
    });
    

    因此在初始化自动完成时不应该使用lookup 属性,而应该初始化serviceUrl 属性。 这也将处理 AJAX 调用,您不必关心。

    在您返回的 JSON 字符串中,您还需要确保 data.suggestions 数组包含数组元素,哪些元素应该具有值和数据属性。

    【讨论】:

    • 我按照你说的创建了数组,但它仍然不会在自动完成中打印。所以我认为问题出在其他地方
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多