我有这个逻辑:用户在表单中提供他的地址,我将使用这个地址,在提交功能中我将获取这个地址的纬度和经度,并将其保存到表单中的隐藏输入字段中,然后使用这些提交表单里面经纬度。
我的js函数:
var geocoder = new google.maps.Geocoder();
function geocodeme(adr) {
var address = adr;
geocoder.geocode(
{'address': address},
function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var latitude = results[0].geometry.location.lat();
var longitude = results[0].geometry.location.lng();
//alert(latitude + ' - ' + longitude);
$('#lat').val(latitude);
$('#long').val(longitude);
}
}
);
}
function submitme(){
var adres = str + '+' + hnr + '+' + plz + '+' + stadt + '+' + land;
var codemeadr = str + ' ' + hnr + ' ' + plz + ' ' + stadt + ' ' + land;
geocodeme(codemeadr);
//document.addform.submit();
alert($('#lat').val() + ' -- ' + $('#long').val());
}
我的表格:
....
<input type="hidden" name="lat" id="lat" />
<input type="hidden" name="long" id="long" />
<a href="javascript:submitme();"> Submit </a>
问题是我第一次点击提交时,经纬度为空(未设置),但第二次点击提交时,它们已设置,这是为什么?为什么它不能在第一次提交调用时设置纬度和经度?
顺便说一句:所有这些参数str
,hnr
..它们确实存在并且它们不是空的,但这在这里甚至无关紧要..
感谢帮助