在引导程序标记字段中插入标记后,调用“自动完成”下拉列表
Invoke AutoComplete dropdown after inserting token in bootstrap tokenfield
我有一个类似Fiddle的小例子。使用自动完成的简单引导标记输入。
$(document).ready(function() {
$('#tokenfield').tokenfield({
autocomplete: {
source: ['red','blue','green','yellow','violet','brown','purple','black','white'],
delay: 100
},
showAutocompleteOnFocus: true
});
});
默认情况下,在选择一个令牌后,输入仍然会被聚焦,只有当我将注意力集中在输入字段时,自动完成才会再次自动弹出。
我希望在输入令牌后能够重新打开自动完成选项。
我想再次尝试使用tokenfield:createtoken
事件来丢失和获得输入的焦点,但这不会提供自动完成下拉列表。
$('#tokenfield').on('tokenfield:createtoken', function (e) {
console.log('FOCUS IN AND OUT');
$('#tokenfield-tokenfield').blur();
$('#tokenfield-tokenfield').focus();
});
另一个想法是尝试使用search
函数自动完成ui。
$('#tokenfield').on('tokenfield:createtoken', function (e) {
console.log('TRY AUTOCOMPLETE SEARCH');
$('#tokenfield-tokenfield').autocomplete('search', '');
});
运气也不好。请帮忙!谢谢JSFiddle此处
您的代码不起作用,因为事件是在自动完成窗口关闭之前触发的。
因此,您需要setTimeout使其工作:
JSFiddle 上的样本
setTimeout(function() {
$('#tokenfield-tokenfield').blur();
$('#tokenfield-tokenfield').focus()
}, 0)
正如您在示例中看到的,在设置了令牌之后,自动完成窗口将立即关闭并再次打开。
根据aeryaguzov的回答进行了一些修改(我需要添加一个点击才能在打开后第一次点击时进行选择)它运行良好,但仍然是一种变通方法。
我们欢迎更好的解决方案。
$('#tokenfield').on('tokenfield:createtoken', function (e) {
setTimeout(function() {
$('#tokenfield-tokenfield').blur();
$('#tokenfield-tokenfield').focus();
$('#tokenfield-tokenfield').click();
}, 0)
});
Fiddle here
相关文章:
- 自动完成带有id和值的下拉列表
- 如何在角度js的自动完成下拉列表中对项目列表(按字母顺序)进行排序
- 在自动完成下拉列表中获取所选值
- jQuery自动完成下拉列表中的粗体搜索文本字符
- jQuery ui自动完成下拉列表中的两个字段
- 下拉列表自动填充到页面上的文本(非输入字段)中
- 当我从下拉列表中选择公司名称时,UpdatePanel 自动发布返回=true 并且自动完成文本框不起作用
- jQuery 自动完成:首次键入后不显示下拉列表
- 将公司名称绑定到更新面板中的下拉列表,自动完成文本框工作,但每次页面刷新时
- 代码镜像如何创建自定义自动完成下拉列表
- 我可以在不通过下拉列表的情况下让 jQuery 自动完成以匹配输入吗?
- 如何在 jquery 的自动完成下拉列表旁边显示弹出窗口
- php-ajax自动完成下拉列表
- 如何根据从第一个下拉列表自动更改的第二个下拉列表更改第二个文本框值
- 如何关闭侧点击的自动完成下拉列表
- 根据所选下拉列表自动填充文本框
- 基于自动完成值的动态下拉列表
- HTML下拉菜单自动完成文本框
- 根据下拉选择自动完成源代码
- Jquery下拉列表自动设置Id