我有一个下拉菜单,我想放在谷歌地图infowindow。菜单中填充了数组中的内容。当我将菜单放在信息窗口之外时,它可以正常工作,但是当我尝试将其放入信息窗口时,它会断开。最终目标是在信息窗口中获取一个表单,这样当我提交表单时,我可以处理表单数据并将指示返回到标记。我已经附上了下面的代码,有问题的行用**表示,并提前感谢您的所有帮助。
Infowindow代码:
google.maps.event.addListener(marker, 'click', function () {
service.getDetails(request, function (place, status) {
var locationofplace = place.geometry.location;
var markerlocation = marker.getPosition();
var markerlat = markerlocation.lat();
var markerlng = markerlocation.lng();
if (status == google.maps.places.PlacesServiceStatus.OK) {
var contentStr = '<h5>' + place.name + '</h5><p>' + place.formatted_address;
if (!!place.formatted_phone_number) contentStr += '<br>' + place.formatted_phone_number;
if (!!place.website) contentStr += '<br><a target="_blank" href="' + place.website + '">' + place.website + '</a>'; * * contentStr += '<form><select id="selectNumber"><option>Change Address</option></select></form>'; * *
contentStr += '<br><a href="javascript:calcRoute(0,' + markerlat + ',' + markerlng + ');">Get Directions</a>';
contentStr += '<br>' + place.types + '</p>';
infowindow.setContent(contentStr);
infowindow.open(map, marker);
} else {
var contentStr = "<h5>No Result, status=" + status + "</h5>";
infowindow.setContent(contentStr);
infowindow.open(map, marker);
}
});
});
将数据添加到菜单代码:
window.addEvent('load', function () {
var select = document.getElementById("selectNumber");
for (var i = 0; i < addresses.length; i++) {
var opt = addresses[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
select.appendChild(el);
}
});
答案 0 :(得分:2)
使用domready
的{{1}} - 事件代替infowindow
- 事件load
来操纵下拉列表(下拉列表没有被注入在domready-event之前进入文档)