【问题标题】:jQueryUIautocomplete not workingjQueryUI自动完成不工作
【发布时间】:2013-10-28 07:20:28
【问题描述】:

我正在尝试使用 jqueryUI 自动完成功能,其中可用的标签将从后端源中获取。 这是我的代码。

HTML 代码

<div class="span4 pull-right" id="search">
    Search : <input type="text" placeholder="Search">
</div>

js 代码

<script>
    $(function() {
    $( "#search" ).autocomplete({
    source: "/dashboard/search"
    });
});
</script>

** django views.py**

def search(request):
    availableTags = ["ActionScript","AppleScript","Asp","BASIC","C","C++","Clojure","COBOL","ColdFusion","Erlang"];
    ctx = {"availableTags":availableTags}
    return HttpResponse(availableTags) #returns the set of values(checked with firebug while debugging) but autocomplete doesnot works.

    #return render(request, 'dashboard/dashboard.html', ctx) // returns nothing.

仪表板 urls.py

urlpatterns = patterns('modules.energy.dashboard.views',
    url(r'^$','dashboard',name='cilantro_dashboard'),
    url(r'search','search',name='cilantro_search'),
)

主 urls.py

urlpatterns = patterns('',

    url(r'^dashboard/', include('modules.energy.dashboard.urls')),
)

这是我在使用 firebug 调试时收到的响应。

ActionScriptAppleScriptAspBASICCC++ClojureCOBOLColdFusionErlang

我的availabletags 已返回,但自动完成功能仍然无效。我哪里错了?

【问题讨论】:

    标签: jquery django jquery-ui jquery-autocomplete


    【解决方案1】:

    似乎您需要在发送数据字典之前将其转换为 JSON。

    from django.utils import simplejson
    data = simplejson.dumps(availableTags)
    return HttpResponse(data)
    

    【讨论】:

    • 谢谢。我猜对了,但我没看懂。我的意思是我的availableTags 是一个集合。如何将其转储为 json?请解释。谢谢
    • 另外它提供了自动完成的列表,但是当我不断输入时它并没有过滤结果。为什么会这样?
    • 对不起,我不知道你在问什么。我的代码显示了如何转储为 json。
    • 我要求过滤标签不起作用。有什么建议吗?
    【解决方案2】:

    据我所知,如果您返回的结果是正确的,那可能只是因为您在 div 中返回了自动完成功能,而不是在您的 input 中。

    【讨论】:

    • 你能检查你返回的数据吗?格式应为["data1","data2","data3",...]。我更喜欢在我的 javascript 中使用 php echos,但必须先以这种方式准备它们。
    • 我不是 php 人。请告诉我我应该如何检查它? PS:如前所述,我得到的回复是ActionScriptAppleScriptAspBASICCC++ClojureCOBOLColdFusionErlang。不知道为什么,但它实际上应该像您提到的格式一样返回。
    • 您实际上应该在 Firebug 中看到响应。你能发一下吗?如果您发布的是您的实际回复,那肯定是行不通的。
    • 是的,这就是我得到的响应。(在萤火虫中)。我哪里错了?
    • 好的,在你的 django views.py 中试试这个:availableTags = '["ActionScript","AppleScript","Asp","BASIC","C","C++","Clojure","COBOL","ColdFusion","Erlang"]';,然后告诉我进展如何。
    猜你喜欢
    • 2014-09-12
    • 2011-03-14
    • 1970-01-01
    • 2011-05-16
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多