Почему JQuery Autocomplete отображает только один элемент? - PullRequest
0 голосов
/ 02 мая 2009

Я использую автозаполнение JQuery на моем шаблоне, но когда я получаю результаты, автозаполнение отображает только один элемент, несмотря на то, что полученные результаты имеют более одного элемента. Показывает только первый элемент в списке!

Пример:

если у меня есть список результатов с ('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 ]

2 голосов
/ 03 мая 2009

Ребята, только что обнаружили, что используемый плагин JQuery Autocomplete требует нового символа строки в качестве разделителя между элементами, поэтому я заменил свое представление Ajax Django на следующее:

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

отлично работает!

Спасибо.

0 голосов
/ 02 мая 2009

Похоже, что HttpResponse делает Something|Something|... там, где jQuery хочет Something,Something,.... Попробуйте изменить multipleSeparator на '|'. Кроме того, так как я не знаю использование печати до HttpResponse.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...