- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个由 Bootstrap Tagsinput
提供支持的文本输入。目前,这个文本输入是用 Typeahead
自动完成中使用的单个标签列表初始化的:
$('.tagsInput').tagsinput({
maxChars: 25,
maxTags: 5,
typeaheadjs: [{
minLength: 1,
highlight: true
},{
minlength: 1,
source: new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
local: allTags
})
}],
freeInput: true
});
allTags
是一个 Json 字符串数组。
然而,我想要实现的是,我没有一个简单的标签列表,即 allTags
,而是有某种可以访问不同列表的函数,然后可以选择正确的取决于某些元素的值。例如,将有一个下拉列表,根据所选的值,将使用不同的标签列表。 我做不到。
不过,我找到了一个变通方法,基本上,我使用我的文本输入元素的类名,并且我在与列表一样多的类名上初始化尽可能多的 tagsInput。这行得通,但它似乎过于复杂,并不是真正干净的实现。
有什么想法吗?
更新:这是 HTML:
<input id="tags" name="tags" data-role="tagsinput" class="form-control input-sm tagsInput typeahead" type="text" placeholder="Enter some tags" title="Please enter some tags" value="" required>
select
是一个普通的select
。
最佳答案
当 select
更改时,您调用一个函数来告诉 Bloodhound 使用哪个数组(或 json 文件/url),然后要求它重新运行其 initialize
函数更新预输入建议列表。
HTML:
<h1>Typeahead Test </h1>
<select onchange="changeList(this.value)">
<option selected value="countries">Countries</option>
<option value="cities">Cities</option>
</select>
<input id="tags" name="tags" data-role="tagsinput" class="form-control input-sm tagsInput typeahead" type="text" placeholder="Enter some tags" title="Please enter some tags" value="" required>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/typeahead.js/0.11.1/typeahead.bundle.min.js"></script>
<script src="bootstrap-tagsinput.min.js"></script>
Javascript:
var country_list = ["Afghanistan", "Albania", "Algeria", "Andorra", "Auckland", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "Bosnia & Herzegovina", "Botswana", "Brazil"];
var city_list = ["Amsterdam", "London", "Paris", "Washington", "New York", "Los Angeles", "Sydney", "Melbourne", "Canberra", "Beijing", "New Delhi", "Kathmandu", "Cairo", "Cape Town", "Kinshasa"];
var myData = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
local: $.map(country_list, function(item) {
return {
value: item
};
})
});
myData.initialize();
$('#tags').tagsinput({
typeaheadjs: {
name: 'value',
displayKey: 'value',
valueKey: 'value',
source: myData.ttAdapter()
}
});
// utilised some code from http://stackoverflow.com/a/23000444/1544886
changeList = function(val) {
source = (val === 'cities') ? city_list : country_list;
myData.clear(); // First remove all suggestions from the search index
myData.local = $.map(source, function(item) {
return {
value: item
};
});
myData.initialize(true); // Finally reinitialise the bloodhound suggestion engine
};
关于javascript - 使用 Bootstrap tagsinput 以编程方式选择 Bloodhound 自动完成标签列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42473447/
我正在使用 jquery.tagsinput,并且希望能够粘贴以逗号或空格分隔的电子邮件地址列表。使用类似的东西 https://github.com/xoxco/jQuery-Tags-Input/
我一定是遗漏了一些简单的东西,但我看不到它。我正在使用 Bootstrap tagsinput 插件,我正在尝试遵循此处的一些示例: http://bootstrap-tagsinput.github
我正在使用 Jquery“tagsinput”让用户在输入字段中创建标签。 我想垂直显示标签而不是内嵌。 此外,当您输入类似“1300x1300”的内容时,输入似乎没有覆盖 100% 的宽度。 我该如
JS var app = angular.module('plunker', ['ngTagsInput']); //'ngTagsInput' app.controller('MainCtrl',
我无法获得默认的 Bootstrap-TagsInput confirmKeys,即 enter = 13 或 comma = 188,开箱即用。无论有没有 Typeahead.js 都是如此.确认键
我刚刚遇到了Bootstrap TagsInput,我正在尝试它,但我似乎无法让它工作。。我在布局的顶部添加了以下内容:。我在布局的底部添加了以下内容:。然后,在我的部分页面中,我添加了以下内容:。下
我的搜索框在这里: 我有一个按钮,用于从搜索框中删除所有标签: Back javascript函数如下: $("#go_back").click(function(){ $('input')
我尝试了 the other post 中建议的解决方案: $("input[name='tags']").tagsinput('input').addClass('form-control'); 但
我有一个搜索框和几个复选框。选中后,复选框中的值将被推送到搜索框中。 现在我想对插入搜索框中的每个字符串使用引导标签输入,使其看起来像标签,但我在标题中收到错误消息。 我使用标签输入是否错误? $(d
我正在尝试使用 Bootstrap Tagsinput在 Bootstrap 3 上使用 Typeahead,使用 Bootstrap-3-Typeahead因为原来的 typeahead 似乎被 T
我是这样使用 tagsinput 的。 但是当我添加标签时,如果标签字符小于或等于 5,它会正确显示标签。如果字符超过 5,它不会显示完整的标签文本,标签末尾也没有叉号。以下是截图 输入 12345
所以我有这个问题。我希望 bootstrap tagsinput 只接受字母、逗号和回车键。如何解决这个问题呢?我使用这个 Bootstrap :https://bootstrap-tagsinput
这是引用 http://timschlechter.github.io/bootstrap-tagsinput/examples/bootstrap3/ 中的“Bootstrap Tagsinput”
我将使用 bootstrap tagsinput 而不添加新标签功能(仅删除标签)。如何禁止添加新标签? 我正在使用最新的 bootstrap tagsinput v0.8.0 和 twitter b
我将使用 bootstrap tagsinput 而不添加新标签功能(仅删除标签)。如何禁止添加新标签? 我正在使用最新的 bootstrap tagsinput v0.8.0 和 twitter b
我有一个标记插件( http://xoxco.com/projects/code/tagsinput/ ),唯一的问题是,我经常将内容加载到同一个 DOM 中 - 因此 .tagsInput() 再次
我正在使用 Bootstrap 标签输入字段。因为我在下面使用 jquery 添加代码成功运行的项目。 $('#tag').tagsinput('add', { "value": 1 , "text"
我在 Angular js 中集成了用于自动完成的 tagsInput。 我已经包含文件 ng-tags-input.min 并在我的 View 中添加了以下代码。 还在
我正在使用其他方面非常出色的 bootstrap-tagsinput在我的应用程序中,但是当我尝试将它与 Bootstrap 3 input-group 组合时,输入组中断。 有办法解决这个问题吗?
编辑:已添加working JSFiddle 我正在使用 Twitter Bootstrap TagsInput 和 Bootstrap Typeahead。我的源是一个 json 文件,但这无关紧要
我是一名优秀的程序员,十分优秀!