我有一个艰难的时间越来越Twitter的引导的要事先键入的内容合作。 预输入仅匹配的输入的第一个字母。 我在预输入框结果看起来像
n
n
n
N
N
n.
我的代码
<%= text_field_tag :search, params[:search], "data-provide" => "typeahead", "data-source" => '["USA", "Canada","Mexico"]' %>
任何人都可以帮忙吗?
我有一个艰难的时间越来越Twitter的引导的要事先键入的内容合作。 预输入仅匹配的输入的第一个字母。 我在预输入框结果看起来像
n
n
n
N
N
n.
我的代码
<%= text_field_tag :search, params[:search], "data-provide" => "typeahead", "data-source" => '["USA", "Canada","Mexico"]' %>
任何人都可以帮忙吗?
检查在你的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"]'
对于任何人谁正在使用源功能(即Ajax调用服务器)时得到这个问题:
采用:
process(JSON.parse(data));
代替:
process(data);
我只是想你的代码,它为我工作。 当我改变了引号是这样的,虽然,我是让你所遇到的问题:
"['USA', 'Canada','Mexico']"
我也陷入了类似的问题,这是不是您的问题略有不同,但它可能会帮助别人。 发生了什么事给我的是,我被传递到预输入的JSON是被解释为一个字符数组。 所以,如果我通过了:
["USA", "Canada","Mexico"]
这将它解释为26个字符数组,因此结果预输入是给我了单个字符。
就我而言,那是因为我调用Ajax和我没有设置具体的数据类型为“JSON”。 你的情况是没有问题的,但希望这能让你争取解决感动!
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(结果);