javascript - 刷新数据源自动完成jQuery
问题描述
我想在我的输入字段上发生 keyup 事件后刷新我的自动完成源。
我的代码如下:
<div class="ui-widget">
<input id="myInput" type="text">
</div>
var nb = data.length;
var myArray = [];
for (var i = 0; i < nb; i++) {
myArray.push({
value: data[i],
label: data[i],
});
}
$("#myInput").autocomplete({
source: myArray,
minLength: 1,
select : function(event, ui) {
// someCode;
}
}).on("focus", function() {
$(this).autocomplete("search");
});
在初始化时,我的自动完成源是一个空数组。每次用户按键后,数组都会更新。问题是当我填充时myArray
,列表不显示。我必须按箭头键(向上或向下)才能打开列表。
此外,在打开列表进行新搜索(另一个键)时,它保持不变并且我没有更新我的列表。
所以我有两个问题:
- 当用户将焦点放在输入字段上时,如何让列表打开?
- 进行新搜索时如何刷新我的来源?
提前致谢 !:)
解决方案
我自己设法做到了,我知道这不是最干净的方法,但这是我的解决方案:
在重新创建之前销毁自动完成:
$("#myInput").autocomplete("destroy");
强制它失去焦点,然后强制关注输入:
$("#myInput").blur();
$("#myInput").focus();
正如我所说,远非最干净,但对用户透明......
推荐阅读
- python - 使用 WSL 从浏览器连接到 localhost 时出现问题
- spring-boot - 从 Swagger 3.0 UI 中删除 ModelAndView
- canvas - Scaling Matter.js 画布会中断鼠标拖动
- php - 如何在 PHP 中显示“用户在多少天前访问了一个网站”
- python - 缺失值的插补和除法
- kubernetes - 控制 kubernetes 集群中 statefulset 的各个 pod 的节点/pod 亲和性
- java - Processbuilder 执行带有争论的 jar 文件
- flutter - Flutter从字符串变量中设置颜色
- python-3.x - 最大回文积 - 缺乏普遍性
- python - 无法删除“?” 特点