【发布时间】:2013-05-13 20:34:49
【问题描述】:
我对 google maps api 地方自动完成有问题。似乎函数getPlaces() 不像文档中描述的那样工作:
Autocomplete
如果详细信息是,则返回用户选择的地点的详细信息 成功找回。否则返回一个存根 Place 对象,其中 name 属性设置为输入字段的当前值。
以如下代码为例:
<html>
<head>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&sensor=false&libraries=places"></script>
<script type="text/javascript">
initialize = function () {
var input = document.getElementById('locationsearch');
var options = {
types: ['(cities)']
};
autocomplete = new google.maps.places.Autocomplete(input, options);
}
google.maps.event.addDomListener(window, 'load', initialize);
submitform = function () {
searchplace = autocomplete.getPlace();
console.log(searchplace.name);
}
</script>
</head>
<body>
<form onsubmit="submitform();return false;">
<input type="text" id="locationsearch"/>
<input type="button" value="search" onclick="submitform(); return false;"/>
</form>
</body>
</html>
这个简单的代码在input="text" 元素中使用了自动完成功能,按下它旁边的按钮后,它应该在控制台中记录地名。
我遇到的问题是input 元素选择的位置不完整。我希望getPlace() 函数返回place 对象,其名称属性设置为input 元素的当前值。相反,控制台正在记录错误:
Uncaught TypeError: Cannot read property 'name' of undefined.
我在使用地点自动完成时做错了什么,还是这个功能根本无法正常工作? 谢谢。
【问题讨论】:
-
请定义“选择的地点不完整”
-
当您在输入元素中写入几个字母并且您没有从自动完成列表中选择任何内容时。未选择位置,但输入元素也不为空。
-
文档描述了这种行为仅适用于在输入中按下回车键的情况。
-
这不是 3.14 的真实文档:“如果成功检索到详细信息,则返回用户选择的地方的详细信息。否则返回存根 Place 对象,名称属性设置为输入字段。”我有同样的问题。这需要通过获取连接输入字段的直接值来解决...
-
就是这样,我重建了整个
autocomplete函数以按预期工作。到目前为止,我没有找到任何其他解决方案。
标签: google-maps-api-3 autocomplete google-places-api