https://google-developers.appspot.com/maps/documentation/javascript/examples/places-autocomplete
我有一个类似上面的谷歌地方自动完成演示网址,如果我键入白金汉宫。它将返回
的结果等。如何从结果中删除英国伦敦?
答案 0 :(得分:2)
谷歌似乎没有兴趣尽快整理出来。我不得不求助于以下,对其他人来说可能就足够了。需要:
document.addEventListener('DOMNodeInserted', function(event) {
var target = $(event.target);
if (target.hasClass('pac-item')) {
target.html(target.html().replace(/, Australia<\/span>$/, "</span>"));
}
});
请注意,pac-item
是每个建议使用的类。有关使用的其他类,请参阅Google Reference。具有pac-container
类的容器似乎在未显示时删除项目,并在显示时添加新项目,因此如果将这些pac-items
添加到DOM,则意味着建议正在进行中显示,pac-container
即将显示。
刚刚开展这项改进工作。
这也不是一个完整的解决方案。选择删除国家/地区的建议时,自动填充功能仍会将国家/地区添加到地理编码中! place_changed
改变这一点已经太迟了,所以请将上面的解决方案看作是答案的一部分。一旦我弄清楚其余部分,我会再次更新。
---更新
个人而言,我最终没有使用谷歌自动填充,因为我无法找到解决自动完成问题的方法,一旦选择了修改后的建议,仍然会显示该国家/地区。一种更有用的方法是使用twitter typeahead并使用谷歌API来获取建议。这让我对这些建议有了更多的控制权,但显然需要更多的手工工作来弥补功能的丢失答案 1 :(得分:1)
以下是我如何使用jQuery自动完成它。希望它可以帮到某人。
$("#Search").autocomplete({
source: function (request, response) {
var options = {
input: request.term,
types: ['(cities)'],
region: 'US',
componentRestrictions: { country: "us" }
};
function callback(predictions, status) {
for (var i = 0, prediction; prediction = predictions[i]; i++) {
results.push(prediction.description.replace(/, United States$/, ""));
}
response(results);
}
var service = new google.maps.places.AutocompleteService();
service.getPlacePredictions(options, callback);
var results = [];
}
});
答案 2 :(得分:0)
如果不手动处理结果,则无法进行此操作。如果您认为这是一个有用的功能,请提交Places API - Feature Request。