2014-09-25 86 views
1

我想使用django在我的网页上实现自动完成功能。我继续jquery自动完成,它有足够的文件来说明如何实现它。我也根据我的django观点和网址做了相应的修改。不过,我无法查看自动填充中的任何条目。jquery自动完成与django无法正常工作

下面是代码片段,这将使的我是如何实现它

的mypage.html

<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css"> 
<script src="http://code.jquery.com/jquery-1.10.2.js"></script> 
<script src="http://code.jquery.com/ui/1.11.1/jquery-ui.js"></script> 
<link rel="stylesheet" href="/resources/demos/style.css"> 

... 
... 

<script> 
$(function() { 
var entries= [ 
    "emp1", 
    "emp2", 
    "emp3", 
    "emp4", 
    "emp5" 
]; 
$("#vote").autocomplete({ 
    source: "api/get_employees/", 
}); 
}); 
</script> 

... 
... 
... 

<div class="ui-widget"> 
<input id="vote" type="text" name="vote"/> 
<input type="submit" value="Vote" /> 
</div> 

urls.py一个清晰的思路

url(r'^api/get_employees/', views.get_employees, name='get_employees') 

views.py

def get_employees(request): 
    data = ['MyName'] 
    return HttpResponse(json.dumps(data),'application/json') 

我曾尝试将[{id:'MyName'}}]传递给数据。但是在自动完成期间我仍然没有得到它。 我相信jquery部分没有问题,因为如果我通过条目变量来源,一切工作正常。只有当我改变它从django视图获取数据时,它才会遇到问题。 在这方面的任何指针都会有所帮助。我已经尝试了其他帖子在stackoverflow但无济于事。

+0

用inspect元素(chrome)或firebug(firefox)检查你的ajax调用并检查是否有错误 – ruddra 2014-09-25 12:37:38

回答

0

第一。他们帮助我形成正确的json传回。但后来我发现我错过了一行“import json”。即使没有这条我无能为力的路线,一切都很好。再次,任何指针赞赏。

在完成导入并将正确的json传回之后,我可以看到具有自动完成功能的条目列表。

2

你的JSON应该是这样的:

[ 
    { 
    "id":"Ficedula hypoleuca", 
    "label":"Eurasian Pied Flycatcher", 
    "value":"Eurasian Pied Flycatcher" 
    }, 
    { 
    "id":"Muscicapa striata", 
    "label":"Spotted Flycatcher", 
    "value":"Spotted Flycatcher" 
    } 
] 

当你看的例子在http://jqueryui.com/autocomplete/#multiple-remote你可以看到自动完成的“问” http://jqueryui.com/resources/demos/autocomplete/search.php

您还应该使用/api/get_employees/代替api/get_employees/

也许这也是importend(对于你的Django部分): jquery使用参数项来搜索词。 例如http://jqueryui.com/resources/demos/autocomplete/search.phpterm = ca正在搜索'ca'

1

自动完成文档不是很清楚。为了使它工作,你需要确保api/get_employees?term=...将返回一个JSON数组结构,像这样:

一切都要感谢所有的答案
[ {"value":"3","label":"Matching employee A"}, 
    {"value":"5","label":"Matching employee B"}, 
    etc. 
] 
相关问题