9

我想在自动完成中手动选择一个项目并在给定值的情况下单击它。

以下代码:

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

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

我在上面的代码中尝试了以下添加但不起作用:

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

有什么办法可以做到吗?

谢谢

请有人帮忙

4

2 回答 2

33

如果您查看 jQuery 团队在他们的自动完成单元测试中执行此操作的方式,他们会使用类似于以下代码的内容:

    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 

这个笨拙的显示它工作

于 2013-03-17T21:59:33.647 回答
-1

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

于 2012-11-08T12:29:58.883 回答