use*_*590 5 datasource ruby-on-rails typeahead twitter-bootstrap
我很难让Twitter Bootstrap的Typeahead工作.Typeahead仅匹配输入的第一个字母.我在预先输入框中的结果看起来像
n
n
n
N
N
n.
Run Code Online (Sandbox Code Playgroud)
我的代码是
<%= text_field_tag :search, params[:search], "data-provide" => "typeahead", "data-source" => '["USA", "Canada","Mexico"]' %>
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
小智 7
检查html中为数据源属性输出的引号组合.我在下面的代码片段中遇到了同样的问题.
<input type="text" name="test" id="test" class="span2" data-provide="typeahead"
data-items="4" data-source="['thisone','another','zzzz']">
Run Code Online (Sandbox Code Playgroud)
改为以下,我在其他例子中看到过,没有解决它
data-source="["thisone","another","zzzz"]"
Run Code Online (Sandbox Code Playgroud)
但切换到属性值周围的单引号和可搜索元素的双引号修复它.这有效.
data-source='["thisone","another","zzzz"]'
Run Code Online (Sandbox Code Playgroud)
对于使用源函数(即ajax调用服务器)时遇到此问题的任何人:
使用:
process(JSON.parse(data));
Run Code Online (Sandbox Code Playgroud)
代替:
process(data);
Run Code Online (Sandbox Code Playgroud)
我刚刚尝试了你的代码,它对我有用。当我将引号更改为这样时,我遇到了您遇到的问题:
"['USA', 'Canada','Mexico']"
Run Code Online (Sandbox Code Playgroud)
我遇到了类似的问题,它与您的问题略有不同,但可能对其他人有帮助。我遇到的情况是,我传递给 typeahead 的 JSON 被解释为字符数组。所以如果我传入:
["USA", "Canada","Mexico"]
Run Code Online (Sandbox Code Playgroud)
它会将其解释为 26 个字符的数组,因此 typeahead 给我的结果是单个字符。
就我而言,这是因为我正在进行 ajax 调用,并且没有将 dataType 设置为“json”。就您而言,这不是问题,但希望这能让您找到解决方案!
| 归档时间: |
|
| 查看次数: |
3836 次 |
| 最近记录: |