我需要在提交表单之前运行一些 jquery 代码,并且似乎存在一些问题。
在你急于推荐这个之前,请先听我说:
$(function() {
$('form').submit( function() {
/* some code */
return true;
});
});
我需要,在按下“提交”按钮后,首先使用谷歌 API 计算地址的经纬度变量,然后提交表单。这需要在回调函数中监听响应。
到目前为止,我的代码如下所示:
$("form input:submit").click(function(e){
e.preventDefault();
var address = $(this).find('.address').val();
geocoder.geocode( { 'address': unescape(address)}, function(results, status)
{
if (status == google.maps.GeocoderStatus.OK)
{
$(".latSelector input:hidden").val(results[0].geometry.location.lat());
$(".lngSelector input:hidden").val(results[0].geometry.location.lng());
$("form").submit();
}
});
});
如果我使用“提交”函数执行相同的操作,表单会在触发回调函数之前提交,并且后面的代码会以缺失值执行。
如果我像上面的代码一样在按钮上使用“click”事件并手动提交,那么代码会正确执行,但提交不会触发表单后面的代码。
我想我已经接近让它工作了,但我找不到可以运行代码、处理回调值然后正确提交表单的神奇组合,以便执行后面的代码。