gpt4 book ai didi

javascript - 如何将submit()事件延迟到Geocoder完成之后?

转载 作者:行者123 更新时间:2023-12-02 20:09:24 25 4
gpt4 key购买 nike

我正在开发 Google map /Google 电子表格混搭。

目前,我正在开发一个 javascript/jquery 位,它允许用户填写表单,然后将该表单提交到 Google 电子表格。

当用户点击“提交”时,脚本会快速将用户的街道地址发送到 Google 的地理编码器,后者会返回等效的纬度和经度。

我遇到的问题是,在我的地理编码器例程完成之前,表单信息就被提交到 Google 电子表格。我不知道如何修改 .submit() 事件以防止其提交,直到我获得纬度和经度之后。

在我的 jQuery 就绪处理程序中,我有这个:

    $("#ss-form").submit(function(event) {
var street = $('#entry_1').val();
var citystate = $('#entry_2').val();
var country = $('#entry_3').val();
findAddress(street,citystate,country);
});

它正在调用这个函数:

function findAddress(street, citystate, country) {
var myAddress = [
street,
citystate.toLowerCase(),
country.toLowerCase()
].join(', ');

geocoder.geocode(
{address: myAddress},
function(result,status) {
var myLat = result[0].geometry.location.lat();
var myLng = result[0].geometry.location.lng();
$('#entry_5').val(myLat);
$('#entry_6').val(myLng);
console.log(myLat+','+myLng);
}
);
}

相关的 HTML 是一个具有六个输入的简单表单(#entry_0 到 #entry_6)。

所以我想要做的是获取 Lat 和 Lng,然后将它们作为值放入 HTML 表单中,然后让表单提交。如何让提交延迟到 findAddress 函数完成之后?

最佳答案

$("#ss-form").submit(function(event) {
event.preventDefault(); //prevent the submit
var street = $('#entry_1').val();
var citystate = $('#entry_2').val();
var country = $('#entry_3').val();
findAddress(street,citystate,country,$(this));

});

在函数中提交表单

function findAddress(street, citystate, country, form ) {
var myAddress = [
street,
citystate.toLowerCase(),
country.toLowerCase()
].join(', ');

geocoder.geocode(
{address: myAddress},
function(result,status) {
var myLat = result[0].geometry.location.lat();
var myLng = result[0].geometry.location.lng();
$('#entry_5').val(myLat);
$('#entry_6').val(myLng);
console.log(myLat+','+myLng);

form[0].submit(); //submit the form here
}
);

}

关于javascript - 如何将submit()事件延迟到Geocoder完成之后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7116586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com