不明白为何我的jQuery自动补全不工作。(Flask/Python后端)
这是我的html。
<!doctype html>
<html lang= "en">
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var data = {{job_names}};
$("#job_names").autocomplete({source : data}); //also tried .autocomplete(source :data)
});
</script>
</head>
<body>
<h2> Maverick Job Documentation Tool </h2>
Search : <input id="job_names" type= "text">
</body>
现在 {{job_names}} 是我通过 flask/render_template 传递进来的一个工作列表。我很确定我传递列表的方式是对的,因为当我查看源代码时,可以看到我想要自动补全的内容列表。不过,里面的引号看起来像是被转义了,或者有些奇怪的地方。
['/path/to/job/a', '/path/to/job/b' etc...
有没有人能看到我在这个或 jquery 上犯的明显错误?
2 个回答
0
你的引号被编码了。你可以这样来解码:
var decoded = $('<div/>').html(data).text();
或者你可以确保一开始它就没有被网址或HTML编码。
0
这段代码是可以正常工作的。
1.) 确保你传递的是一个有效的数组给数据
2.) 把 JSON 对象传递给自动完成的方法
<!doctype html>
<html lang= "en">
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var data = ["'/path/to/job/a'", "'/path/to/job/b'"];
$("#job_names").autocomplete({source : data});
});
</script>
</head>
<body>
<h2> Maverick Job Documentation Tool </h2>
Search : <input id="job_names" type= "text">
</body>