1

我对 javaScript 和所有这些东西完全陌生。我需要实现自动完成,所以我从简单的例子开始。这里的代码:

<html lang="en">
<head>
  <meta charset="utf-8" />
  <title>jQuery UI Autocomplete</title>
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css" />
  <script type="text/javascript">
    $(function() {
        $( "#tags" ).autocomplete({
            source: function( request, response ) {
                $.ajax({
                  url: "http://myUrl.com/suggest.json?term=harry",
                  success: function( data ) {
                    response( data.suggestions );
                  }
                });
              },
        });
      });
      </script>
</head>
<body>
<div class="ui-widget">
  <label for="tags">Tags: </label>
  <input id="tags" />
</div>
</body>
</html>

这是我从脚本中提到的 url 得到的 json:

{
    "term" : "harry",
    "count" : 4,
    "suggestions" : 
    [
        "harry potter",
        "harry l.",
        "harry a.",
        "harry leon"
    ]
}

似乎没问题,但我没有自动完成选项。可能是什么问题?

4

2 回答 2

0

您的代码运行良好。我看到的一个问题是},应该在 IE}},不起作用

jsFiddle

于 2013-08-04T12:35:48.663 回答
0

我找到了问题的根源。他们很少,所以也许其他人会很有趣。

第一个问题是跨域呼叫限制。要允许跨域调用,必须在返回的 json 上实现回调函数。

其次,在我使它作为独立的 html 工作后,它在整个项目中都不起作用。问题是在我的 *.jsp 文件之一中覆盖了 .menu 函数。通过谷歌搜索,我找到了在 jquery.js 文件中重命名 .menu 函数的解决方案(我猜不是最好的,但仍然有效)。在这些操作之后一切正常。

于 2013-08-05T08:07:52.600 回答