2009-05-02 102 views
0

在我的模板上使用JQuery Autocomplete,但是當我得到結果時,Autocomplete只顯示一個項目,儘管獲取的結果有多個項目。它只顯示列表中的第一項!爲什麼JQuery自動完成只顯示一個項目?

實施例:

如果我有( '蟒', 'pythonism', 'pythodus')

和上自動完成一個結果列表i型'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') 
+0

你檢查過你的django的輸出嗎?請發帖吧 – 2009-05-02 10:32:40

回答

2

夥計們,剛剛發現JQuery Autocomplete插件正在使用需要一個新的行字符作爲項目之間的分隔符,所以我已經替換了我的Ajax Django視圖以像這樣讀取;

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

其工作完美!

謝謝。

+0

回答了您自己的問題。 +1 – 2009-05-03 12:03:36

0

它看起來像HttpResponseSomething|Something|...了jQuery是想Something,Something,...哪裏。嘗試更改multipleSeparator'|'。另外,因爲我不知道HttpResponse之前的打印使用情況。

+0

如果我替換「|」用「,」甚至沒有顯示任何一個項目。 – gath 2009-05-03 09:09:13