в Jquery, как запустить код с обратным вызовом перед отправкой

Мне нужно запустить JQuery код перед отправкой формы, и, похоже, есть некоторые проблемы.

Просто выслушайте меня, прежде чем поспешите рекомендовать это:

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

Мне нужно, после нажатия кнопки «отправить» сначала вычислить переменные долготы и широты адреса с помощью Google 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();
          }
       });  
  });

Если я делаю то же самое, используя функцию «submit», форма отправляется до того, как сработает функция обратного вызова, а код позади выполняется с пропущенными значениями.

Если я использую событие «click» на кнопке, как в приведенном выше коде, и отправляю вручную, тогда код выполняется правильно, но отправка не вызывает код позади формы.

Я думаю, что я близок к тому, чтобы заставить это работать, но я не могу найти волшебную комбинацию, которая запустит код, обработает значения обратного вызова и затем отправит форму правильно, так что код позади выполняется.

Ответы на вопрос(4)

Ваш ответ на вопрос