in JQuery, wie Code mit Rückruf ausgeführt wird, bevor er gesendet wird

Ich muss vor dem Absenden eines Formulars einen JQuery-Code ausführen, und es scheint einige Probleme zu geben.

Hören Sie mich einfach an, bevor Sie dies weiterempfehlen:

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

Ich muss nach dem Klicken auf "Senden" zunächst die Längen- und Breitengradvariablen einer Adresse mit der Google-API berechnen und dann das Formular senden. Dazu muss in einer Rückruffunktion auf eine Antwort gewartet werden.

Der Code, den ich bisher habe, sieht folgendermaßen aus:

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

Wenn ich dasselbe mit der Funktion "submit" mache, wird das Formular gesendet, bevor die Rückruffunktion ausgelöst wird, und der Code dahinter wird mit fehlenden Werten ausgeführt.

Wenn ich das "click" -Ereignis auf der Schaltfläche wie im obigen Code verwende und manuell abschicke, wird der Code korrekt ausgeführt, aber der Absenden löst nicht den Code hinter dem Formular aus.

Ich glaube, ich bin kurz davor, dies zum Laufen zu bringen, aber ich kann die magische Kombination, die den Code ausführt, nicht finden, die Rückrufwerte verarbeiten und dann das Formular korrekt übermitteln, sodass der dahinter stehende Code ausgeführt wird.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage