引导只事先键入的内容显示的第一个字母(Bootstrap Typeahead only displa

2019-09-21 22:12发布

我有一个艰难的时间越来越Twitter的引导的要事先键入的内容合作。 预输入仅匹配的输入的第一个字母。 我在预输入框结果看起来像

n
n
n
N
N
n.

我的代码

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

任何人都可以帮忙吗?

Answer 1:

检查在你的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"]'


Answer 2:

对于任何人谁正在使用源功能(即Ajax调用服务器)时得到这个问题:

采用:

process(JSON.parse(data));

代替:

process(data);


Answer 3:

我只是想你的代码,它为我工作。 当我改变了引号是这样的,虽然,我是让你所遇到的问题:

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

我也陷入了类似的问题,这是不是您的问题略有不同,但它可能会帮助别人。 发生了什么事给我的是,我被传递到预输入的JSON是被解释为一个字符数组。 所以,如果我通过了:

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

这将它解释为26个字符数组,因此结果预输入是给我了单个字符。

就我而言,那是因为我调用Ajax和我没有设置具体的数据类型为“JSON”。 你的情况是没有问题的,但希望这能让你争取解决感动!



Answer 4:

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(结果);



文章来源: Bootstrap Typeahead only displaying first letter