2016-08-01 7 views
0
var cache = {}; 
$("#skills").autocomplete({ 
    minLength: 3, 
    source: function(request, response) { 
     var term = request.term; 
     if (term in cache) { 
      response(cache[ term ]); 
      return; 
     } 

     $.getJSON("/profile/skills-list", request, function(data, status, xhr) { 
      cache[ term ] = data; 
      response(data); 
     }); 
    } 
}); 

が含まれているだけのものから、すべてのデータを取得します。 jQueryサイトでこの例を試してみると、うまく動作します。オートコンプリートは、配列ではなく、私は配列ではなく文字Iは、入力フィールドに入力が含まれているデータだけからすべてのデータを取得し、このコード(jQueryのUIオートコンプリートの例)で入力された文字

どうしてですか?私は何が恋しい?

答えて

0
var cache = {}; 
$("#skills").autocomplete({ 
    minLength: 2, 
    source: function(request, response) { 
     var term = request.term; 

     $.getJSON("/profile/skills-list", function(data, status, xhr) { 
      var skills = []; 
      $.each(data, function(i, item) { 
       if (data[i].indexOf(term) != -1) 
       { 
        skills.push(data[i]) 
       } 
      }); 
      response(skills); 
     }); 
    } 
}); 

ロミーが正しくありました。私はサーバーからすべてのデータを取得し、サーバー側で値をチェックする機能が存在しませんでした。そのため、私はJavaScriptで指定された配列の各値の文字列の位置を調べる必要がありました。

1

与えられたコードはうまくいくようです。キーワードフィルタリングがサーバー側で正常に機能していると思いますか?サーバー側のコードが入力フィールドのキーワードに基づいて結果をフィルタリングしていない可能性があります。

関連する問題