JQuery AutoComplete,手动选择第一个搜索项并绑定点击

时间:2012-11-06 00:32:12

标签: javascript jquery jquery-autocomplete jquery-ui-autocomplete

我想在自动填充中手动选择一个项目,然后在给定值的情况下单击它。

以下代码:

autocompleteitem.autocomplete("option", "autoFocus", true).autocomplete("search", autocompleteitem.val());

autocompleteitem是一个输入对象,它包含我想要搜索的值。现在,此代码成功从下拉列表中选择第一个项目,但它没有单击它。我不想自己点击它我希望它以某种方式在该代码中发生。

我尝试了上面代码的以下添加功能:

   .click(), .select(), .trigger('select'), .find('a').click(), .change()

有什么方法可以做到吗?

感谢

请有人帮忙

2 个答案:

答案 0 :(得分:31)

如果你看一下jQuery团队在他们的unit tests中为自动完成工作的方式,他们会使用类似于以下代码的东西:

    var downKeyEvent = $.Event("keydown");
    downKeyEvent.keyCode = $.ui.keyCode.DOWN;  // event for pressing "down" key

    var enterKeyEvent = $.Event("keydown");
    enterKeyEvent.keyCode = $.ui.keyCode.ENTER;  // event for pressing "enter" key

    $("#autoComplete").val("item"); // enter text to trigger autocomplete
    $("#autoComplete").trigger(downKeyEvent);  // First downkey invokes search
    $("#autoComplete").trigger(downKeyEvent);  // Second downkey highlights first item
    $("#autoComplete").trigger(enterKeyEvent); // Enter key selects highlighted item 

plunk显示正常工作

答案 1 :(得分:0)

看一下这个jqFAQ.com主题,这将帮助您以编程方式选择值的第一个匹配选项并将其设置为自动完成文本框。其他自动填充相关的常见问题解答也很少,我认为这可能对您有用。