使用下面的代码在表单中将jQueryUI自动完成添加到输入文本元素。 如果输入文本并快速按下标签,光标将移至其他列,但自动完成菜单仍保持打开状态。
在这种情况下如何防止打开自动完成菜单。 可能模糊事件应该终止自动完成drowpdowm菜单数据检索调用 从服务器或类似的东西收到数据后,下拉菜单没有打开? 我试图将input.autocomplete('close')添加到模糊但这没有帮助。 在从服务器检索数据之前和打开自动完成之前,可能会出现模糊。
输入包含input type ='text'对象引用。
input.autocomplete({
source: 'GetLookupList',
position: { collision: 'flip flip' }
}
);
$(input).bind({
keydown: function (e) {
if (enter(e) || (e.ctrlKey && e.keyCode === 83)) {
input.autocomplete('close');
}
},
blur: function (e) {
input.autocomplete('close');
}
});
答案 0 :(得分:1)
我打算在评论部分写一个回复,但我想附上一些代码。
我基本上和你做了同样的事情并绑定keydown
enter
键关闭autocomplete
,然后在附加到click
的按钮上调用$('input[id$=MainSearchBox]').bind(
{
keydown: function(e)
{
if (e.which === 13)
{
$('input[id$=MainSearchBox]').autocomplete('close');
$('input[id$=MainSearchBox]').autocomplete('disable');
$('input[id$=MainSearchBoxGoButton]').click();
e.preventDefault()
return false;
}
}
});
事件搜索框。
pageLoad
似乎是人们可以做的最直接的事情。我在下一个版本中读到了一些关于修复的地方,但是现在,我认为这个解决方案可行。
编辑:更新了代码以禁用自动填充,允许点击通过,当包含的{{1}}方法在部分回发时被调用时,它将重建自动完成对象。我担心它可能不是最聪明或最有效的方式,但它似乎有用......