javascript - Jquery Form Submit, Async Call then Submit Form On Success -


i trying lat long of address inserted form before form submitted.

here code:

 var success = false; var getlat = 0; var getlng = 0;  function getlnglat() {     var address = $(".save-new-address").val();     if(!address) return false;     if(success) return false;      var geocoder = new google.maps.geocoder();     geocoder.geocode( { 'address': address}, function(results, status) {         if (status == google.maps.geocoderstatus.ok) {             console.log(results);             map.setcenter(results[0].geometry.location);             success = true;             var newmarker = new google.maps.marker({                 position: results[0].geometry.location,                 map: map               });             $(".save-new-lat").val(results[0].geometry.location.lat);             $(".save-new-lng").val(results[0].geometry.location.lng);         } else {             alert("geocode not successful following reason: " + status);         };                                             }); }   $("form#save-new-restaurant").submit(function () {     getlnglat();     if(success) {          return true;     } else {         getlnglat();         $("form#save-new-restaurant").submit();         return false;        } }); 

most of copied google developers page. finding either form submitting quick, , details being retrieved after above function has finished,

i trying data google when form submitted, , when i've got data want submit form. how can this?

try instead

var success = false; var getlat = 0; var getlng = 0;  function getlnglat() {     var address = $(".save-new-address").val();     if(!address) return false;     if(success) return false;      var geocoder = new google.maps.geocoder();     geocoder.geocode( { 'address': address}, function(results, status) {         if (status == google.maps.geocoderstatus.ok) {             console.log(results);             map.setcenter(results[0].geometry.location);             success = true;             var newmarker = new google.maps.marker({                 position: results[0].geometry.location,                 map: map               });             $(".save-new-lat").val(results[0].geometry.location.lat);             $(".save-new-lng").val(results[0].geometry.location.lng);              $("form#save-new-restaurant").unbind("submit"); // unbinding event getlnglat doesn't execute again             document.getelementbyid('save-new-restaurant').submit();             $("form#save-new-restaurant").bind("submit", formsubmitcallback); // attaching event further uses if require         } else {             alert("geocode not successful following reason: " + status);         };                                             }); }   $("form#save-new-restaurant").bind("submit", formsubmitcallback);  function formsubmitcallback() {     getlnglat();     return false; } 

hope !!


Comments