no jQuery como executar o código com retorno de chamada antes de enviar
Eu preciso executar algum código de jquery antes de enviar um formulário e parece haver alguns problemas.
Apenas me ouça antes de correr para recomendar isso:
$(function() {
$('form').submit( function() {
/* some code */
return true;
});
});
Depois de pressionar o botão "enviar", preciso primeiro calcular as variáveis de longitude e latitude de um endereço usando a API do Google e, em seguida, enviar o formulário. Isso requer escutar uma resposta em uma função de retorno de chamada.
O código que eu tenho até agora parece com isso:
$("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();
}
});
});
Se eu fizer o mesmo usando a função "enviar", o formulário será enviado antes que a função de retorno de chamada seja acionada e o código por trás seja executado com valores ausentes.
Se eu usar o evento "click" no botão como o código acima e enviar manualmente, o código será executado corretamente, mas o envio não acionará o código por trás do formulário.
Eu acho que estou perto de fazer isso funcionar, mas não consigo encontrar a combinação mágica que irá executar o código, processar os valores de retorno de chamada e, em seguida, enviar o formulário corretamente, para que o código por trás seja executado.