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.

questionAnswers(4)

yourAnswerToTheQuestion