2012-08-29 22 views
5

私はTwitter BootstrapのTypeaheadを動作させるのに苦労しています。 Typeaheadは、入力の最初の文字にのみ一致します。先行入力ボックス内の私の結果はブートストラップ先読みの最初の文字のみを表示

n 
n 
n 
N 
N 
n. 

私のコードのようなものが

<%= text_field_tag :search, params[:search], "data-provide" => "typeahead", "data-source" => '["USA", "Canada","Mexico"]' %> 

誰が助けることはでき

で見えますか?

答えて

2

私はちょうどあなたのコードを試して、それは私のために働いた。私は引用符は、このかかわらずのように変更すると、私はあなたが抱えている問題を得ていた。

"['USA', 'Canada','Mexico']" 

私は同様の問題に実行していた、それはあなたの問題よりもわずかに異なるのですが、それは他の人を助けるかもしれません。私に起こっていたことは、私が先に渡していたJSONが文字配列として解釈されていたことです。私は渡されたのであれば:

["USA", "Canada","Mexico"] 

したがって、結果の先行入力は、単一の文字だった私を与えていた、26文字の配列としてそれを解釈します。

私の場合は、私がajax呼び出しを行っていて、dataTypeを 'json'に設定していなかったからです。あなたのケースでは、それは問題ではありませんが、うまくいけば、これはあなたが解決策に向かって動くようになります!ソース関数(サーバーへのすなわちAJAX呼び出し)を使用している場合、この問題を取得している人のため

6

使用:

process(JSON.parse(data)); 

の代わり:

process(data); 
7

チェックあなたのhtmlでデータソース属性のために出力された引用符の組み合わせ。私は、次のコードスニペットで同じ問題を抱えていました。私は他の例で見てきた、以下に変更

<input type="text" name="test" id="test" class="span2" data-provide="typeahead" 
data-items="4" data-source="['thisone','another','zzzz']"> 

、それを

data-source="["thisone","another","zzzz"]" 

を修正するが、検索可能な要素の属性値の周りの単一引用符と二重引用符に切り替えていませんでしたそれを固定した。 これはで動作します。

data-source='["thisone","another","zzzz"]' 
+0

ニース。最初のオプション(data-source = "[" thisone "、" another "、" zzzz "]")は私のためのトリックでした。どうも。 – darksoulsong

1
var data = ""; 
$.ajax({ 
     url: 'ajax/getdirverandpass.php', 
     success: function (result) { 
      data = JSON.parse(result); 
     }, 
     async: false 
}); 

$("#nav-search-input").typeahead({source: data, updater: function (a) { 
      $("#nav-search-input").focus(); 
      return a 
}}); 

この JSON.parse(結果)を使用してください。

関連する問題