谷歌地图信息窗口中的下拉菜单

时间:2014-05-22 21:55:36

标签: javascript forms google-maps google-maps-api-3 infowindow

我有一个下拉菜单,我想放在谷歌地图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);
  }
});

1 个答案:

答案 0 :(得分:2)

使用domready的{​​{1}} - 事件代替infowindow - 事件load来操纵下拉列表(下拉列表没有被注入在domready-event之前进入文档)