gpt4 book ai didi

javascript - 我可以在 jquery 中使用带有 .submit 的回调吗

转载 作者:行者123 更新时间:2023-11-28 07:02:30 25 4
gpt4 key购买 nike

我试图阻止提交处理程序返回 false 或 undefined。我只想在异步结果从谷歌地图返回后返回一个值。这可能吗?我的目标是在使用 Controller 之前等待谷歌地图结果返回。

$('form').submit(function (e) {

var geocoder = new google.maps.Geocoder();
var address = $('#SearchQuery').val();

geocoder.geocode({ 'address': address }, function (results, status) {
if (status != google.maps.GeocoderStatus.OK) {

alert("Geocode was not successful for the following reason: " + status);
return false;
} else {
$("#latitude").val(results[0].geometry.location.G);
$("#longitude").val(results[0].geometry.location.K);

alert("Geocode successful");
return true;
}
});
//don't let anything get returned here, is a callback needed?
});

最佳答案

在关闭回调中使用 return 不会返回到外部提交回调。所以基本上没有什么可以阻止在没有完成地理编码的情况下提交表单

您可以做的是阻止 jQuery 提交事件,并在地理编码成功时通过 native JavaScript 提交提交表单,这不会触发 jQuery 版本

 var geocoder = new google.maps.Geocoder();

$('form').submit(function (e) {
// cancel the event to prevent immediate submit
e.preventDefault();

var form = this;
var address = $('#SearchQuery').val();

geocoder.geocode({
'address': address
}, function (results, status) {
if (status != google.maps.GeocoderStatus.OK) {
alert("Geocode was not successful for the following reason: " + status);

} else {
$("#latitude").val(results[0].geometry.location.G);
$("#longitude").val(results[0].geometry.location.K);

alert("Geocode successful");

// do submit through native submit
form.submit();

}
});

});

关于javascript - 我可以在 jquery 中使用带有 .submit 的回调吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32000598/

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