【问题标题】:Bootstrap Typeahead is not displaying suggestion listBootstrap Typeahead 不显示建议列表
【发布时间】:2017-04-28 04:38:00
【问题描述】:

我按照预先输入的documentation 进行操作,但对我没有任何帮助。我正在从远程加载我的数据: 这是来自远程的数据结构:

{"source":[{id:1,name:"coke"},{id:2,name:"papa"},{id:3,name:"mama"}]} 在客户端,这是我尝试使用的第一个代码:

var typeaheadInput = $('input[name=name]');
       typeaheadInput.typeahead({
           source: function (query) {
               if (query.length > 3) {
                   return $.get('/suggestproduct/' + query, function (data) {
                       return data.source;
                   });
               }
           },autoSelect:true
       });

该代码没有任何效果。信息已到达浏览器,但未显示。 我还尝试阅读有关寻血猎犬的信息,但什么也不懂,即使是之前提出的问题。我需要一个明确的解释。

我想要的是,使用 Bootstrap Typeahead 来显示我的数组中项目的列表(建议,自动完成),但 name 字段的值并将所选项目的 id 字段值传递给隐藏字段。

我怎样才能做到这一点?

【问题讨论】:

  • 你能创建一个jsFiddle吗?

标签: jquery twitter-bootstrap bootstrap-typeahead bloodhound


【解决方案1】:

你可以试试这个小提琴

我觉得你可以用这个

http://jsfiddle.net/apougher/7aaRy/

<input id='product'></input>

var jsonData = [
  {
    "id": 1,
    "name": "Andrew Pougher"
  },
  {
    "id": 2,
    "name": "Michele Moore"
  },
  {
    "id": 3,
    "name": "Michele Boob"
  },
  {
    "id": 4,
    "name": "Michael Moore"
  },
  {
    "id": 5,
    "name": "George Michael"
  }
]

var productNames = new Array();
var productIds = new Object();
//$.getJSON( '/getAjaxProducts', null,
       // function ( jsonData )
        //{
            $.each( jsonData, function ( index, product )
            {
                productNames.push( product.name );
                productIds[product.name] = product.id;
            } );
            $( '#product' ).typeahead( { source:productNames } );
       // };

【讨论】:

  • 问题是我在哪里可以实现该代码,因为通常源中的数据会随着用户键入的内容而变化,并且会触发更改事件。如果我将更改源的代码放在 typeahead 输入事件的更改事件中,那么每次即使用户从列表中选择一个值也会触发。
  • 这里不起作用的是您的解决方案的实现:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多