【发布时间】:2018-03-29 01:59:49
【问题描述】:
现在如果我像这样初始化我的组件:
$('#foo').autocomplete({
delay: 0,
minLength: 1,
source: self.loadUsers.bind(self),
select: function(event, ui) {
$(this).autocomplete('widget').hide();
var selected = ui.item;
var element = selected.element;
// more stuff here
},
focus: function() { return false; },
open: function() { console.log('Opening menu...'); }
})
每次更改#foo 中的文本时,它都会执行搜索(并正确调用loadUsers)。 focus 和 open 事件将正常工作。
我想要避免的是,实际上,避免以这种方式触发搜索。我只想在按下(或释放,更好)ENTER(keyCode 13)时执行搜索。现在这两个部分都在工作:按下回车时执行搜索,这是由这个事件处理程序完成的:
function(event) {
if (event.keyCode === 13) {
var input = $("#foo"); // perhaps $(this) could do the job?
input.autocomplete('search');
}
}
但是我想从常规击键/文本更改中删除搜索调用。我尝试调用.off('keyup keydown keypress change'),但不知何故它不起作用:每次我在文本框中输入建议都会出现。
ALSO 将 disabled: true 指定为选项不起作用,因为当我这样做时,即使仅在我按 ENTER(这是预期功能)和列表元素已正确检索... UI 列表未填充结果,也未显示。
我怎样才能使这个工作?
【问题讨论】:
标签: jquery-ui jquery-ui-autocomplete