1
        $("input#lastname").autocomplete({
            source: "autocomplete.lastname.php"
        });

我遇到了一个问题,当我使用选项卡更改文本框时,下拉菜单卡在向下位置。可以做些什么来解决这类问题?我也已经有了这样的东西:

    $("input#firstname").autocomplete({
      source: "autocomplete.firstname.php"
    }).keyup(function(e) {
      if (e.which === 13) {
        $(".ui-menu-item").hide();
      }
    });

这不是我想要的,但也许可以修改?我还注意到在 .hide 上仍然显示在进入菜单的底部残余部分。

提前致谢!

4

2 回答 2

1

它滞后是因为您source是一个 PHP 文件,它必须加载和处理那里的任何内容。


一个快速而肮脏的解决方案是加载 AJAX 调用。

$(function() {
    var lastnames;

    $.get("autocomplete.lastname.php", function(data) {
       lastnames = data;
    });


    $("input#lastname").autocomplete({
        source: lastnames
    });
});​
于 2012-12-15T00:24:17.400 回答
0

我遇到了同样的问题,但是对我来说,添加 AJAX 调用似乎有点过头了。因此,当用户关注下一个输入框时,我添加了一行来关闭表单上的所有自动完成功能:

$("#form input").on("focus", function(e) {
    $("#form autocomplete_input_1, #form autocomplete_input_2").autocomplete( "close" );
});

这样做的好处是在您需要时不会干扰自动完成功能,而是为那些可以快速浏览表单的用户快速隐藏它。

于 2013-03-13T13:20:48.237 回答