【问题标题】:jquery ui autocomplete results doesn't show in html dropdownjquery ui 自动完成结果未显示在 html 下拉列表中
【发布时间】:2015-10-15 13:30:56
【问题描述】:

这是我的django视图ajax请求函数:

def get_town(request):
    if request.is_ajax():
        q = request.GET.get('term', '')
        towns = Town.objects.filter(name__icontains=q)
        results = []
        for name in towns:
            name_json = {}
            name_json['name'] = name.name
            results.append(name_json)
        data = json.dumps(results)
    else:
        data = 'fail'
    mimetype = 'application/json'
    return HttpResponse(data, mimetype)

网址和一切都设置得很好。

我的自动完成是这样的:

$(function() {
  $("#id_town").autocomplete({
    source: "/api/get_town/",
    minLength: 3,
  });
});

但是,您可以从下图中看到,虽然结果已返回并可从请求中获得,但不会显示在下拉列表中。根据下图输入框中输入的键,我得到的结果是:[{"name": "Densuano"}]

那有什么问题呢?为什么不显示下拉菜单?

【问题讨论】:

  • 不是解决方案,但这绝对可以帮助您:data = json.dumps(list(Town.objects.filter(name__icontains=q).values('name')))

标签: javascript jquery html ajax django


【解决方案1】:

我想通了:

name_json['name'] = name.name

是罪魁祸首。上面正在制作一个自动完成无法解释的键值列表。我改成

name_json = name.name

它成功了。

【讨论】:

  • 你在评论中试过我上面的解决方案了吗?这比建立自己的清单要好,因为你已经有了一个机制
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-09
  • 1970-01-01
  • 2015-08-09
  • 2011-10-12
  • 1970-01-01
  • 1970-01-01
  • 2020-07-18
相关资源
最近更新 更多