Jquery自动完成始终建议每个选项

时间:2012-10-26 13:12:32

标签: jquery ajax json autocomplete

无论我在文本框中键入什么内容,始终显示整个列表。继承我的代码:

$("#tb_country").autocomplete({
  source: function(request, response) {
    $.ajax({
      url: "/index.php/ajax_calls/select_countries",
      dataType: "json",
      data:  request,
      success: function(data) {
        response(data);
      }
    });
  },
  minLength: 3
});

select_countries 函数以正确的格式返回自动完成的JSON数据,即 [{“label”:“United States”},{“label”:“Canada”} ... ..... 的 请有人告诉我这是错的,比如

2 个答案:

答案 0 :(得分:5)

确保您实际过滤了服务器端代码中的响应,如here所述:

  

自动完成插件不会过滤结果,而是过滤查询   string添加了一个术语字段,服务器端脚本应该   用于过滤结果。例如,如果源选项是   设置为“http://example.com”,用户输入foo,即GET请求   将被http://example.com?term=foo

您确实发送了正确的请求(term param填充了input元素的当前值),但很可能不会在服务器代码中使用它。

答案 1 :(得分:0)

问题可能是响应不在上下文中?

您可以尝试从服务器获取数据的onchange而不是使用响应(数据),而不是像这样设置源:

$("#tb_country").autocomplete( "option", "source", serverData );

此外,我不知道问题是否来自服务器或jquery的返回数据。如果问题是来自服务器的数据,则应确保请求中发送的内容。

编辑:必须是服务器问题,因为数据已经填充一次。 请您发布请求标题和/或服务器功能吗?