为什么JQuery Autocomplete只显示一个项目?

时间:2009-05-02 10:28:40

标签: jquery html django

我在模板上使用JQuery Autocomplete,但是当我得到结果时,自动完成仅显示一个项目,尽管获取的结果包含更多的项目。它只显示列表中的第一项!

示例:

如果我的结果列表包含('python','pythonism','pythodus')

并在自动填充中输入'pyt',它只会在下拉列表中显示'python'

我的自动填充代码:

$(document).ready(function(){

        $("#tags1").autocomplete("/taglookup/", {
        width: 320,
        max: 4,
        highlight: false,
        multiple: true,
        multipleSeparator:",",
        scroll: true,
        scrollHeight: 300,
        delay: 10
         });

      });

我的AJAX django视图被调用:

def tag_lookup(request):
    # Default return list
    results = []
    if request.method == "GET":
        if request.GET.has_key(u'q'):
            value = request.GET[u'q']
            # Ignore queries shorter than length 3
            if len(value) > 2:
                TI = Tag.objects.filter(name__contains=value)
                print TI
                results = [ x.name for x in TI]
    print results #shows me more than one item is returned
    return HttpResponse('|'.join(results), mimetype='text/plain')

2 个答案:

答案 0 :(得分:2)

伙计们,刚刚发现JQuery Autocomplete插件正在使用需要一个新的行字符作为项目之间的分隔符,所以我已经取代了我的Ajax Django视图来读取这样的内容;

 return HttpResponse('\n'.join(results), mimetype='text/plain')

它的工作完美!

感谢。

答案 1 :(得分:0)

看起来HttpResponse正在执行Something|Something|... jQuery需要Something,Something,...。尝试将multipleSeparator更改为'|'。此外,由于我不知道在HttpResponse之前使用印刷品。