在提交

时间:2016-12-28 17:05:52

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

我的输入中有一个自定义表单,其中包含Google自动填充功能。选择位置并单击“提交”后,纬度和经度值将随位置值一起更新以进行搜索。

我无法找到一种方法来阻止表单提交,直到值更新,我尝试了不同的事件,如onchange或keyup,但这会对api进行多次调用,并不是一个很好的答案。

function geocodeAddress(geocoder) {
  var address = document.getElementById('autoc-input-maps').value;
  geocoder.geocode({'address': address}, function(results, status) {
    if (status === google.maps.GeocoderStatus.OK){
      marker = new google.maps.Marker({
        position: results[0].geometry.location
      });
      jQuery("#lat").val(marker.position.lat());
      jQuery("#lng").val(marker.position.lng());

    } else {
      console.log('Geocode was not successful for the following reason: ' + status);
    }
  });
}

  function updatecords() { 
      var geocoder = new google.maps.Geocoder();
      geocodeAddress(geocoder); 
  }

jQuery('#auto-search').submit(function() {
  updatecords();
  return true;
});

我也尝试在提交时设置超时,但没有工作。

1 个答案:

答案 0 :(得分:0)

另一个与此类似的问题是here。我想你可以使用这个功能:

function pan() {
        var panPoint = new google.maps.LatLng(document.getElementById("lat").value, document.getElementById("lng").value);
        map.panTo(panPoint)
     }

希望这有帮助!