jQuery自动完成阻止选择后聚焦
jQuery autocomplete prevent focus after selection
要求:
我想要一个jQuery自动完成元素,它允许用户选择一个项目,并使用所选值设置显示字段和隐藏字段。但我也希望当输入字段接收到用户的焦点时,该字段和隐藏字段被清除。
问题:
我面临的问题是,当用户选择一个项目时,就像jQuery执行onSelect函数,然后再次将焦点发送到输入字段,从而触发我的focus()事件(从而清除我的选择)。
问题浏览器:
IE8,适用于Chrome。没有尝试其他人。
尝试修复:
- 我已尝试将焦点设置为
select()
中的另一个元素作用它确实把重点放在了这个元素上,但只是在专注于输入字段 - 在中尝试了
event.preventDefault()
和event.stopPropagation()
select()方法。不起作用 - 模糊也不起作用
解决方法:
我想我可以将清除更改为点击而不是聚焦,但这不是我想要的。
类似stackoverflow线程:
jquery自动完成建议后删除焦点
代码:这是我的代码:
$(function () {
$("#autosuggest").autocomplete({
source: "my server path",
minLength: 3,
select: function (event, ui) {
if (ui.item) {
$("#autosuggest").val(ui.item.value);
$("#hidden").val(ui.item.id);
}
}
});
$("#autosuggest").focus(function () {
$("#hidden").val("");
this.value = "";
});
});
问题是:当你点击一个自动完成建议时,焦点会很快转移到下拉菜单上,然后返回到你的输入。如果您使用向下箭头按钮选择自动完成建议,您还会遇到这个问题吗?如果你不这样做,那么这就是问题所在。
我能看到的解决这个问题的唯一方法不是让它成为焦点事件,但我想我知道你为什么不想让它成为点击事件:你还想捕捉到字段中的选项卡。
解决方案:让它成为一个点击处理程序,并添加一个"keyup"处理程序,如果键是一个选项卡,它将执行点击处理程序(仍然允许向下箭头等)。
我从jQuery论坛上得到了这个,它非常棒!
select: function(event, ui) {
$(event.target).autocomplete("close")
setTimeout(function() {
$(event.target).blur();
})
}
链接:https://forum.jquery.com/topic/autocomplete-input-field-stays-focused-after-selection
Try-onSelect函数。。
$(function () {
$("#autosuggest").autocomplete({
source: "my server path",
minLength: 3,
select: function (event, ui) {
if (ui.item) {
$("#autosuggest").val(ui.item.value);
$("#hidden").val(ui.item.id);
}
},
onSelect: function (suggestion) {
$(this).click();}
});
$("#autosuggest").focus(function () {
$("#hidden").val("");
this.value = "";
});
});
相关文章:
- jQuery自动完成阻止选择后聚焦
- 多个选择框聚焦第一个选择框
- 使用jquery聚焦选择html元素
- 在聚焦文本输入时触发文件选择
- 如何使用 Reactjs 选择输入中的所有文本,当它聚焦时
- 防止<输入/>在视线之外,在选择()(或聚焦)时将页面滚动到视图中
- 选择输入中的所有文本,聚焦
- 添加选项以选择聚焦IE9
- 剑道网格如何以编程方式聚焦网格单元格和块选择文本
- jQuery - <选项> 标记 - 无法在<选项>“取消选择”或“聚焦”上触发回调
- 如何选择,聚焦文本区域
- 选择并聚焦标签
- 在dom内有大量输入标签的IE中,聚焦和/或选择输入元素的速度很慢
- 在输入字段中选择一些文本,但不是全部,当它被聚焦时
- 如何聚焦angularjs的ui选择输入
- 在jQuery中检查多重选择下拉聚焦时数组中的值是否存在
- 替代选择/聚焦功能,自动将光标放置在质量的文本框中
- 如何在HTML表单中聚焦当前选择
- ExtJS网格:为什么聚焦线也选择了它
- 选择聚焦文本