jQuery 以编程方式自动完成搜索和 SELECT 第一选择(如果有)

jQuery autocomplete programmatically search and SELECT first choice (if any)

这本来应该很简单,但是 Whosebug 中的 none 解决方案似乎对我不起作用...

使用 jQuery 2.1.0,我使用 Ajax 来源、autoFocus: true 和 select: 函数(事件,ui) { ... } 为我提供 key/value 对组合。

我一开始在输入字段中键入内容,我就得到正确的 DDL 选项,然后我可以使用鼠标 select。

但是,我现在想以编程方式触发自动完成搜索,然后 SELECT 第一个选项(如果可用)。

我这样触发搜索:

Preparer.autocomplete('search', LoginName);

可用选项正确显示,但我似乎无法select第一个以编程方式!

我尝试调用 .select(),我尝试在控件中触发按键 13 和 9,甚至尝试在 setTimeout 函数中执行操作以确保正确呈现对话框!

我什至尝试设置选项 { selectFirst: true },但仍然没有...

还有什么我可以尝试的吗??

如上评论:

您可以触发第一个菜单项的点击:

$("#autocomplete-id").data("ui-autocomplete").menu.element.c‌​hildren().first().cl‌​ick()

请记住:触发 select 也会关闭菜单,这似乎违反直觉。最好拦截 source 中的数据并在那里触发您的自定义回调,而根本不用理会 select

搜索

$('#autocomplete-id').data("uiAutocomplete").search($("#autocomplete-id").val());

& Select

var results = $("#autocomplete-id").data("ui-autocomplete").menu.element.c‌​hildren()
.first().cl‌​ick()