2

jquery オートコンプリートを使用しています。これを行うにはもっと良い方法があるはずなので、以下のコードには満足できません。(コードは動作します)

  1. ユーザーに検索ボックスに 3 文字を入力してもらいたい
  2. オートコンプリート投稿パラメーターとサーバー応答
  3. サーバーからデータを取得したら、再度投稿する必要はありません。 注: オートコンプリートは、ユーザーが新しい文字を追加するたびに postind データを保持します
  4. データがあるので、このデータをオートコンプリートのソースとして使用したい

以下のコードは少し問題があります。いずれかを選択すると、ボックスに表示されます。バックスペースを使用すると、提案が更新/入力されません。

質問: オートコンプリートを使用して 1 回だけ投稿し、応答とオートコンプリートのソースを再利用するにはどうすればよいですか?

誰かが私が読むことができる文書を提案または指摘できれば.

ありがとう

jquery-1.9.1.min.js
jquery-ui-1.10.0/jquery-ui.js

     $("#birds").オートコンプリート
    ({
    ソース: 関数 (リクエスト、レスポンス) {
    $.ajax(
    {
    URL: "page.aspx",
    データ: {
    パラ:request.term、
    グループ ID: 11、
    rGUI: 'd9',
    rURL: 'domain.com/',
    タスク: 「物を手に入れる」
    }、
    タイプ: "ポスト",  
    データ型: "json",  
    成功: 関数 (データ) {

    //応答: 関数(項目) {
    var arr = $.map(data, function(item) {
    戻る {
    レーベル: item.LN60,
    値: item.LN60,
    NDC: item.NDC
    }
    });

    $("#birds").autocomplete({
    ソース: arr、
    最小の長さ: 1
    });

    $("#birds").autocomplete({
    閉じる:関数(イベント、UI){
    SuggestDrugs_Request();
    }
    });

    }
    });
    }、
    最小長さ: 2,
    選択: 関数 (イベント、UI) {
    log(ui.item ? "選択: " + ui.item.value +
    " aka " + ui.item.NDC : "何も選択されていません。入力は"
     + this.value);
    }
    });

4

2 に答える 2

4

オートコンプリートのソース プロパティに ajax 呼び出しを追加する代わりに、ajax 呼び出しのコールバックにオートコンプリート機能を追加する必要があります。

$.ajax({
//all your other call settings
 success: function(data){
  //init autocomplete
  $('#birds').autocomplete({
       source: data,
       //all your other autocomplete settings
  });
 }
});
于 2013-02-22T16:43:06.587 に答える
1

$.ajax リクエストを作成し、関数内でオートコンプリートをバインド (.autocomplete 関数呼び出しを作成) しsuccess: function(data) {ます。

次に、オートコンプリートを返されたに設定しsourceますdata(これは明らかに静的です)

于 2013-02-22T16:42:54.643 に答える