【发布时间】:2012-09-14 15:54:36
【问题描述】:
要求:
我想要一个 jQuery 自动完成元素,它允许用户选择一个项目并使用所选值设置显示字段和隐藏字段。但我也希望在输入字段获得用户焦点时清除字段和隐藏字段。
问题:
我面临的问题是,当用户选择一个项目时,它几乎就像 jQuery 正在执行 onSelect 函数,然后再次将焦点发送到输入字段,这会触发我的 focus() 事件(并因此清除我的选择) .
问题浏览器:
IE8 ,在 Chrome 中工作。其他的没试过。
尝试的修复:
- 我尝试将焦点设置到
select()中的另一个元素 功能。它确实把重点放在了那个元素上,但只是在 专注于输入字段 - 尝试了
event.preventDefault()和event.stopPropagation()选择()方法。没用。 - 模糊也没有用。
解决方法:
我想我可以将清除更改为点击而不是焦点,但这不是我想要的。
类似的stackoverflow线程:
jquery autocomplete remove focus after suggest
代码: 这是我的代码:
$(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 = "";
});
});
【问题讨论】:
-
@j08691 感谢您的回复,我不确定建议的线程是否与我有相同的问题,该帖子似乎处理防止更改事件触发,而我希望重点关注在用户选择项目后传递给输入字段以外的任何内容。
标签: javascript jquery