2016-04-26 9 views
0

商品を検索するための入力ボックスがあります。これは先読みを使用して、返されたデータを取得して表示します。Typeahead:正確な文字列の一致の代わりにすべての結果を表示

ajax応答に入力値が正確に一致しない結果が含まれている場合に問題が発生します。それは、文字列の一致の正確な(の一部)を有するため、500:たとえば :

input query = "daffalgane" 

JSON data result is = 
{products: 
     { id:100, label: "dafalgan 500" }, 
     { id:101, label: "dafalgan 750mg" }, 
     { id:500, label: "daffalgane 600 mg" }, 
} 

先行入力された文字のみidのいずれかを表示します。

他の結果が表示されないのはなぜですか?タイプヘッドが返されたデータセットを表示するだけで、私にはもっと意味があります。参考

、これは、入力ボックスに使用される設定である:

$('#suggestions').typeahead({ 
    minLength: 1, 
    maxItem: 10, 
    hint: false, 
    highlight: false, 
    emptyTemplate: 'NO RESULTS', 
    source:{ 
     products: { 
      display: "label", 
      href: baseurl+'{{slug}}', 
      url: [{ 
       type: "POST", 
       url: baseurl+'/suggest', 
       data: { 
        for: "{{query}}".trim() 
       }, 
      }, "data.products"], 

     }, 
    }}); 
+0

'query'の値は何ですか? – whipdancer

+0

@whipdancerクエリの値は "ダファロガヌ"です。明らかに、typeaheadは、クエリ値に基づいてソースデータセットに対して独自のフィルタリングを実行します。 私は既にフィルタリングされたデータを持っているので、私はそれをソースの全体を表示する必要があります。 – nexana

+1

ほとんどの先読み(と思われる)は完全一致を実行し、入力したテキストに基づいて類似したものを見つけます。ダフを入力したので、他の人は一致しません。あなたが入力する文字数が多いほど、あなたの試合はより明白になります。どのタイプアヘッドを使用しているかに応じて、独自の検索機能を提供することができます。 – whipdancer

答えて

0

Iバージョン2.3.4(http://www.runningcoder.org/jquerytypeahead/) を先行入力するためにアップグレードしfalseにフィルタパラメータを設定することにより、これを固定しました。

これは、先読みによって行われた結果のフィルタリングを防ぎ、ソースのみを表示します。

関連する問題