JQuery自动完成仅建议第一行

时间:2010-03-11 21:31:44

标签: jquery autocomplete

我正在使用JQuery的Autocomplete插件和Google Maps的API进行研究。到目前为止我所拥有的是here。我正在使用Asp.net MVC来生成潜在地址匹配列表(仅限于美国地址),并将它们作为管道分隔列表呈现给自动完成,这应该是.split它们并建议他们给用户。

这是javascript:

$(document).ready(function() {
        $("#address").autocomplete("/Address/Address/").split('|');
    });

以下是Address/Address?q=3118返回的内容:

Galax Dr, Statesville, NC 28677, US|State Highway S-46-148, Gastonia, NC 28052, US|

我遇到的问题(除了顽固的IE-only javascript错误,我将闯入另一个问题),只是建议的第一个结果。

This page清楚地显示了两个结果,但在文本框中键入“3118”只会产生Galax Dr结果。如何获得自动完成以产生两个结果?

编辑:清理代码以摆脱“测试代码”氛围

编辑:通过用CRLF替换管道并删除split()来修复自己。新javascript:

$(document).ready(function() {
    $("#address").autocomplete("/Address/Address/");
});

Autocomplete是我最好的朋友:)

2 个答案:

答案 0 :(得分:2)

查看页面底部的JavaScript,看起来在调用自动​​完成后分割字符串。

所以,而不是

$("#example").autocomplete(data).split('|');

你需要做

$("#example").autocomplete(data.split('|'));

这是通过查看您当前的页面...看起来像一些测试代码。如果您发布了正在尝试使用的完整代码,将会很有帮助。

答案 1 :(得分:1)

如果要传回管道分隔列表,则需要使用处理函数来处理结果。类似的东西:

 $("#address").autocomplete({source: function(request, response) {
                                   $.ajax({
                                            url: "/Address/Address/",
                                            data: request,
                                            success: function(data) {
                                              response(data.split('|'));
                                            }
                                          });
                                 }
  });

检查docs有关与数据源交互的三种方式。您需要返回json而不是管道分隔数据或使用回调。