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

問題の原因を見つけました。それらの数は少なかったので、他の人にとっては興味深いものになるでしょう。

最初の問題は、クロスドメイン コールの制限です。クロスドメイン呼び出しを許可するには、返された json にコールバック関数を実装する必要があります。

次に、スタンドアロンの html として機能させた後、プロジェクト全体で機能しませんでした。問題は、*.jsp ファイルの 1 つでオーバーライドされている .menu 関数でした。グーグルitmから、jquery.jsファイルの.menu関数の名前を変更する解決策を見つけました(私が推測する最善ではありませんが、それでも機能します)。これらの操作の後、すべて正常に機能しました。

于 2013-08-05T08:07:52.600 に答える
0

あなたのコードは正常に動作しています。私が見る1つの問題は、IEでは機能しないはず},です}},

jsフィドル

于 2013-08-04T12:35:48.663 に答える