en Jquery cómo ejecutar código con devolución de llamada antes de enviar

Necesito ejecutar un código jquery antes de enviar un formulario y parece que hay algunos problemas.

Solo escúchame antes de que te apresures a recomendar esto:

$(function() {
     $('form').submit( function() {
         /* some code */
         return true;
     });
});

Necesito, después de presionar el botón "enviar", primero calcule las variables de longitud y latitud de una dirección usando la API de Google y luego envíe el formulario. Eso requiere escuchar una respuesta en una función de devolución de llamada.

El código que tengo hasta ahora se parece a esto:

  $("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();
          }
       });  
  });

Si hago lo mismo con la función "enviar", el formulario se envía antes de que se active la función de devolución de llamada y el código subyacente se ejecute con los valores faltantes.

Si uso el evento "clic" en el botón como el código anterior y envío manualmente, entonces el código se ejecuta correctamente pero el envío no activa el código detrás del formulario.

Creo que estoy cerca de hacer que esto funcione, pero no puedo encontrar la combinación mágica que ejecutará el código, procesará los valores de devolución de llamada y luego enviará el formulario correctamente, de modo que se ejecute el código subyacente.

Respuestas a la pregunta(4)

Su respuesta a la pregunta