【问题标题】:Issues integrating bootstrap-tagsinput, boostrap3-typeahead and Bloodhound集成 bootstrap-tagsinput、boostrap3-typeahead 和 Bloodhound 的问题
【发布时间】:2016-07-21 02:12:32
【问题描述】:

我的小提琴是here。

我正在基于this answer 扩展the Fiddle here 中的示例以使用Bloodhound。

我正在使用以下 sn-p 预取数据:

prefetch_url='https://bootstrap-tagsinput.github.io/bootstrap-tagsinput/examples/assets/cities.json';

var cities = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('text'),
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    prefetch: prefetch_url,
    ttl:1
});

cities.initialize();

这是基于示例here。

我已经修改了tagsinput() 中的typeahead,以适当地获取和使用text 和值字段。

我有以下问题:

  1. 文本框的大小不断变化。
  2. 如果我在文本框中输入内容,我会收到来自 bloodhound.js 文件的 Uncaught TypeError: sync is not a function。

我希望根据cities.json 填充文本框。因此,如果我输入 Amsterdam 和 Washington,我应该会看到 $("#myBox").val() = "1,4"。

我认为我可能错误地混合了不同版本的预输入,但我尝试了几种 JS 文件组合,但没有任何运气。

【问题讨论】:

  • 如果我在 Safari 或 Chrome 上运行你的小提琴,则没有 Uncaught TypeError。重现此问题的步骤是什么?你能解释一下textbox keeps changing 是什么意思吗?你想让文本框固定宽度吗?
  • 谢谢,@gearsdigital。是的,我希望它是固定宽度。出于某种原因,我不再像您所说的那样收到 TypeError,但文本框中没有填充 cities。

标签: twitter-bootstrap bootstrap-typeahead bloodhound bootstrap-tags-input


【解决方案1】:

您的第一个问题是一个简单的 CSS 修复。以下 css 将使您的文本框与父元素宽度匹配。如果您更喜欢固定宽度,只需设置一个固定值

/* match parent element width */
.bootstrap-tagsinput {
  width: 100%;
}

/* alternatively set a fixed width */
.bootstrap-tagsinput {
  width: 320px;
}

第二个问题位于一些错误配置中。您错过了设置 tagsinput 插件的属性 itemValue 和 itemText。我还添加了一种填充您选择的城市的方法。如果您不需要此功能,只需删除方法populateValues()。

当然,这个实现还有一些改进的余地,但这可以自己轻松完成,对吧?

编辑:在使用 Promise 进一步调试后,似乎修复了 cmets 中提到的 OPs 问题。

您可以在这里找到一个工作示例:http://jsfiddle.net/21fbf1L8/3/

示例回购:https://github.com/gearsdigital/so-questions-38493752-

【讨论】:

  • 我没有收到关于 Chrome、Safari 或 Firefox 的任何输入提示。另外,我希望能够获得一个逗号分隔的 ID 列表(就像我的原始来源一样),而不是实际的标签名称作为返回值。
  • 到目前为止一切正常。你试过写一个像阿姆斯特丹这样的城市名字吗?无论如何,我已经编辑了我的小提琴以满足您的要求(以逗号分隔的 ID 列表):jsfiddle.net/21fbf1L8
  • 奇怪!你有任何错误吗?也许这是您的系统或浏览器中的安全策略的问题? OSX下的Firefox、Safari和Chrome都可以:makeagif.com/vkjA5q
猜你喜欢
  • 1970-01-01
  • 2015-06-04
  • 2019-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多