表单提交前的谷歌地理代码
Google Geocode before Form Submit
这个问题看起来很愚蠢,但它已经让我忙了一整天。
我想要实现的是在提交搜索表单之前使用谷歌地理编码器对地址进行地理编码
我有以下代码:
<form name="myForm" id="myForm">
<input type="text" name="address" id="address" />
<input type="hidden" name="lat" id="lat" />
<input type="hidden" name="lng" id="lng" />
<input type="submit" name="submit" />
</form>
$('#myForm').submit(function(){
var a = $('#address').val();
var geocoder = new google.maps.Geocoder();
geocoder.geocode({"address" : a }, function(result, status){
// Extract latitude and longitude
$('#lat').val(latitude);
});
});
除了在设置lat
和lng
之前提交表单之外,一切都正常!
有人能解释一下我的问题吗?
提前谢谢。
更新:
我还尝试在提交按钮上使用onclick
,在表单中使用onsubmit
,在jQuery中使用.validator()
。
首先,您希望阻止表单提交;否则,这可能比异步地理编码请求完成的速度更快。
$('#myForm').submit(function(event){
event.preventDefault();
...
});
然后,您希望将表单提交移动到地理编码响应处理程序中。
geocoder.geocode({"address" : a }, function(result, status){
...
$('#myForm').submit();
});
我想你会遇到的问题是对表单submit的递归调用。因此,我想说的是,让您的事件处理程序不在表单提交上,而是在提交按钮上单击(可能有一种更整洁的方法)。阻止提交按钮的默认操作,但仍然允许我们提交表单。
<input type="submit" name="submit" id="submitButton" />
$('#submitButton').on('click', function(event){
event.preventDefault();
var a = $('#address').val();
var geocoder = new google.maps.Geocoder();
geocoder.geocode({"address" : a }, function(result, status){
// Extract latitude and longitude
$('#lat').val(latitude);
$('#myForm').submit();
});
});
相关文章:
- 谷歌地图Api和JS代码不工作
- SIMPLE Javascript代码,用于显示谷歌电子表格中单个字段的数据
- 谷歌地图&地理代码
- 什么'这是谷歌分析跟踪代码使用的技术
- 谷歌地图代码不起作用
- 谷歌caja-阻止恶意代码
- 我想在每个按钮点击事件上加载多个图表.我使用了下面的谷歌代码
- 从谷歌API地理代码的形式字段到数据库
- 谷歌分析-升级到异步代码
- 从页面上的谷歌分析跟踪代码获取帐户ID
- 谷歌跟踪代码管理器使用什么模式来观察 de 'dataLayer' 数组
- 为什么谷歌跟踪代码管理器不能安装在正文下的另一个HTML元素中
- 谷歌地图,基于国家代码可视化国家
- 我可以在谷歌脚本编辑器(谷歌应用程序脚本)中调试JavaScript代码吗
- 谷歌应用程序脚本:如何在UI关闭后运行此代码
- 谷歌地图自动完成,即使使用工作代码也无法工作
- 我的jquery代码在谷歌chrome控制台中工作,而不是在保存它之后
- 谷歌'的用户令牌和授权代码
- 基于AJAX的联系人表单7事件跟踪新的谷歌分析代码
- 谷歌电子表格示例代码不起作用