5

Twitter Bootstrap の Typeahead を機能させるのに苦労しています。先行入力は、入力の最初の文字のみに一致します。先行入力ボックスの結果は次のようになります

n
n
n
N
N
n.

私のコードは

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

誰でも助けることができますか?

4

4 に答える 4

7

data-source 属性の 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"]'
于 2013-01-23T10:54:48.917 に答える
6

ソース関数 (つまり、サーバーへの ajax 呼び出し) を使用しているときにこの問題が発生した場合:

使用する:

process(JSON.parse(data));

それ以外の:

process(data);
于 2012-09-10T10:42:16.080 に答える
2

あなたのコードを試してみたところ、うまくいきました。ただし、引用符を次のように変更すると、次のような問題が発生しました。

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

私は同様の問題に遭遇していました。それはあなたの問題とは少し異なりますが、他の人に役立つかもしれません. 私に起こったことは、先行入力に渡していた JSON が文字配列として解釈されていたことです。だから私が渡した場合:

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

それは 26 文字の配列として解釈されるため、先行入力の結果は 1 文字でした。

私の場合は、ajax 呼び出しを行っていて、dataType を「json」に設定していなかったためです。あなたの場合、それは問題ではありませんが、うまくいけば、これで解決に向けて動き出すことができます!

于 2012-09-02T20:49:21.843 に答える