2

すでに多くのオートコンプリートを作成しましたが、問題は発生していません。今回は、既存のページにオートコンプリートを挿入しようとしました (非常に複雑で、多くの JavaScript 呼び出しがあります)。

私のコードはそのように単純です:

$('#named_invitees_0_user_id').autocomplete({
  source: 'www.bidon.com'
});

私がしようとしました :

  • $(document).ready() 関数内でこの JavaScript を充電します。
  • ページの読み込み時にこの JavaScript を充電せず、Firebug コンソールで前のコードを実行します
  • オートコンプリートにいくつかのパラメーターを追加します (minLength、disabled、delay、beforeSend、...)
  • ソースに配列を設定する

この 2 つのケースでは、オートコンプリート固有の属性の一部を使用するため、入力はオートコンプリート機能を「理解」します。

<input id="named_invitees_0_user_id" name="named_invitees[0][user_id]" type="text" value="aaaa" autocomplete="off" class="ac_input">

しかし、入力に何かを書き込んだ場合 (Firebug Network アクティビティに関して)、NO リクエストは送信されません。ページに既に存在する JavaScript の一部がこのクエリの制御を追跡していると思いますが、それが何であるかはわかりません。

あなたも ?

編集:

返信ありがとうございます。私はあなたの提案に従います:

  • 配列を「ソース」として設定してみてください: 何も変更しません
  • このページのすべての JS を削除します: jQuery-1.4.3 と jQuery-ui-1.8.20 のみが読み込まれました: 何も変更しません
  • minLength の値を 1 に変更します: 何も変更しません
  • ソース URL が JSON を返すかどうかを確認します: 確認済みです
  • ソース URL が私の Web サイトの名前空間にあるかどうかを確認してください: 確認済みです

編集2:

問題が見つかりました!

どこかに隠された JS コードがありました...古い「オートコンプリート」jquery インクルード。結果: 2 つのオートコンプリートが定義されました。この隠しコードを削除すると、すべて正常に動作します!

返信ありがとうございます。

4

1 に答える 1

1

ソースが適切な json を出力していることを確認してください。

ドキュメントとサンプル コードについては、http://jqueryui.com/autocomplete/#remoteを確認してください。

例を次に示します。

 $( "#named_invitees_0_user_id" ).autocomplete({
      source: "search.php",
      minLength: 2
    });

ソースの後に「:」を使用してください!

于 2013-02-26T08:24:49.330 に答える