2017-01-20 14 views
0

私はオートコンプリートのためにJQuery UIを使用していますが、その入力でサーバーにpingを実行し、オートコンプリートのソースに配列を作成します。今は完璧に動作することがありますが、人々の配列を印刷するとき時々、すべてのソースデータがコンソールに表示される画面に表示されるわけではありません。JQuery UIオートコンプリートですべての結果が表示されない場合があります

let input =$("<input type='text'/>") 
    .appendTo('#dynamic-form-elements'); 
    input.autocomplete({ 
    source: [] // Initially empty 
    }).on('input', function() { 
    $.ajax({ 
     url: "https://lookmeup/json/person/" + input.val(), 
     dataType: "json", 
     success: function (parsed_json) { 
      let people = []; 
      let results = parsed_json.data; 
      for (i = 0; i < results.length; i++) { 
       people.push(results[i][1]) 
      } 
      console.log(people) 
      input.autocomplete('option', 'source', people); 
     } 
    }); 
}) 
+0

入力値が基準を満たした場合にのみ値が表示されますどこがあなたのサーバー上で設定されたすべての条件がありますか? – Roljhon

+0

いいえ、私は正しいデータが返されるのを見ることができますが、それはuiに表示されていません –

答えて

0

あなたがこれを行う必要があり、機能として使用するソース:https://jqueryui.com/autocomplete/#remote

input.autocomplete({ 
    source: function(req, response) { 
     $.ajax({ 
      url: "https://lookmeup/json/person/" + req.term, 
      dataType: "json", 
      success: function (parsed_json) { 
       // do the stuff here and call response callback 
      } 
     }); 
    } 
}) 
+0

これは、各キーストロークのajax呼び出しをトリガーするつもりですか? –

+0

返されたデータをキャッシュするのは簡単です。これはhttps://jqueryui.com/autocomplete/#remote-with-cache –

+0

を参照してください。問題は、各キーストロークが最大5つのエントリを持つ別のデータセットを返すことです。 –

関連する問題