不明白为何我的jQuery自动补全不工作。(Flask/Python后端)

1 投票
2 回答
554 浏览
提问于 2025-04-17 21:00

这是我的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 传递进来的一个工作列表。我很确定我传递列表的方式是对的,因为当我查看源代码时,可以看到我想要自动补全的内容列表。不过,里面的引号看起来像是被转义了,或者有些奇怪的地方。

[&#39;/path/to/job/a&#39;, &#39;/path/to/job/b&#39; 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 = ["&#39;/path/to/job/a&#39;", "&#39;/path/to/job/b&#39;"];
            $("#job_names").autocomplete({source : data});
        });
    </script>

</head>

<body>
    <h2> Maverick Job Documentation Tool </h2>
    Search : <input id="job_names" type= "text">
</body>

撰写回答