jQuery自动完成以编程方式搜索和SELECT首选(如果有的话)

时间:2016-10-12 12:14:34

标签: jquery-ui triggers jquery-ui-autocomplete

这应该是非常简单的,但StackOverflow中的解决方案似乎都不适合我......

使用jQuery 2.1.0,我使用Ajax源设置自动完成,autoFocus:true,以及select:function(event,ui){...},为我提供键/值对组合。

一旦我开始输入输入字段,我就会得到正确的DDL选项,然后我可以用鼠标选择。

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

我触发了这样的搜索:

Preparer.autocomplete('search', LoginName);

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

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

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

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

2 个答案:

答案 0 :(得分:2)

如上面的评论:

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

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

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

答案 1 :(得分:0)

搜索

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

& 选择

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