我正在使用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是我最好的朋友:)
答案 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而不是管道分隔数据或使用回调。