【问题标题】:jQuery autocomplete not properly workingjQuery 自动完成功能无法正常工作
【发布时间】:2015-01-08 02:52:49
【问题描述】:

当我输入第一个字符时自动完成打开,但是当我输入另一个或两个字符时它不会过滤,保持不变。

即使在第一个字符上,列表打开对于任何键入的内容都是相同的,按照来自网络服务的顺序(没有过滤器)。

这是我的代码:

$(function() {
  $('#to').autocomplete({
    source: 'json/searchobjects.php',
          minLength: 1,
          select: function(event, ui) {
              globalDest = ui.item.latlng;
          }
  });
});

这里是 JSON 对象:

[
{
label: "label-1",
value: "val-1"
},
{
label: "label-2",
value: "val-2"
} 
]

看起来我错过了什么。

感谢您的帮助

【问题讨论】:

  • 'json/searchobjects.php'返回一个json数组吗?
  • yes.. 并在输入第一个字符时列出。
  • 浏览器控制台有错误吗?
  • 控制台甚至没有错误。 @MelanciaUK

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


【解决方案1】:

我以前遇到过这个问题。在提供结果的 PHP 脚本中,您需要根据 jQuery 自动完成脚本传递给它的值进行过滤。对这个过滤器使用 $_GET['term'],因为这就是自动完成的用途。

jQuery 自动完成插件以“term”作为变量以静默方式向您的脚本发送 GET 请求,据我所知,您无法配置此设置。

请注意,您可能希望将所需字符的数量增加到一个以上,因为您将获得大量用户不关心的返回结果。我发现三个字符通常是速度和实用性之间的一个很好的平衡。

【讨论】:

  • 哇!太棒了...谢谢@user1647719
  • 乐于助人。这是一个非常容易解决的问题,但我花了一些时间解决同样的问题,然后才弄明白。
【解决方案2】:

根据您的编辑,您的 json 必须是 ["el1","el2",...,"el3"] 类型,或者如果您需要保留 [{},{},...] 类型。但是如果你需要使用你的对象列表,请按如下方式使用

      source: function (request, response) {
            jQuery.getJSON(u, {
                term: request.term*,
                json: 'yep'*/
            }).done(function (_result2) {

                //alert(_result2[0].Label)
                response($.map(_result2, function (item) {
                    return {
                        label: item.Label,
                        value: item.Value,
                        id: item.Value
                    }
                }));
            }).fail(function () {
                alert('fail');
            })
                .error(function () {
                    alert('error');
                });
        }

在您的'json/searchobjects.php?term=TERM' 中将term 作为请求参数,以使用select * from table where Label='%$_GET["term"]' 或其他方式过滤服务器端

【讨论】:

  • 其他答案完成了。这看起来也不错,但我需要改变很多。我的 JSON 很好。显示标签...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-12
  • 1970-01-01
  • 2014-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多