javascript - jquery conditional form submit -


i trying update user profile. after user inserts address , submits converts latitude , longitude. created conditional statement: if geocoderstatus ok change geolocationok = 1 else 0. when 1 run update function, latitude , longitude not passed formdata. on second update click added. suggestion how can include latitude , longitude in formdata?

click update

        $(document).on("click", "#updateprofile", function (e) {             function geocodeaddress(geocoder, resultsmap) {                 var address = document.getelementbyid('address').value;                 geocoder.geocode({'address': address}, function(results, status) {                     if (status === google.maps.geocoderstatus.ok) {                         var latitude = results[0].geometry.location.lat();                         var longitude = results[0].geometry.location.lng();                         console.log(latitude);                         console.log(longitude);                         userlatitude = document.getelementbyid('citylat').value = latitude;                         userlongitude = document.getelementbyid('citylng').value = longitude;                         geolocationok = 1;                         console.log(geolocationok);                      } else {                         alert('geocode not successful following reason: ' + status);                     }                 });             }             geocodeaddress(geocoder);              if(geolocationok == 1){                 updateprofile();             }else{                 console.log("not ok");                 e.preventdefault();             }         }); 

this update function

            function updateprofile(){                 console.log(geolocationok);                  $('#rootwizard').formvalidation({                     framework: 'bootstrap',                     excluded: [':disabled'],                     icon: {                         valid: 'glyphicon glyphicon-ok',                         invalid: 'glyphicon glyphicon-remove',                         validating: 'glyphicon glyphicon-refresh'                     },                        live: 'enabled',                      framework: 'bootstrap',                     icon: {                         valid: 'glyphicon glyphicon-ok',                         invalid: 'glyphicon glyphicon-remove',                         validating: 'glyphicon glyphicon-refresh'                     },                     fields: {                         userphonenr: {                             validators: {                                 notempty: {                                     message: 'please insert phone nr'                                 },                                 regexp: {                                     regexp: /^[a-za-z0-9_]+$/,                                     message: 'error'                                 }                             }                         },                     }                 }).on('success.form.fv', function(e, data) {                     // prevent form submission                     e.preventdefault();                      var $form    = $(e.target),                         formdata = new formdata(),                         params   = $form.serializearray(),                         files    = $form.find('[name="userprofilephoto"]')[0].files;                        $.each(params, function(i, val) {                         formdata.append(val.name, val.value);                     });                      $.ajax({                         url: $form.attr('action'),                         data: formdata,                         cache: false,                         contenttype: false,                         processdata: false,                         type: 'post',                         success: function(data){                             console.log(data);                             if(data.status == 'success'){                                  getprofiledata();                                  }                             },                         error: function(jqxhr, textstatus, errorthrown, data){                             console.log(jqxhr, textstatus, errorthrown, data);                         }                     });                     // destroy                     function destroyformvalidation() {                         var instance = $('#rootwizard').data('formvalidation');                         if (instance) {                             instance.destroy();                         }                     }                     destroyformvalidation();                 });             } 

why can update on second click because on first click binding form validation. why not bind form validation separately outside function updateprofile .

and inside updateprofile submit form:

function updateprofile(){      $('#rootwizard').submit(); } 

Comments

Popular posts from this blog

Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test) on project.Error occurred in starting fork -

windows - Debug iNetMgr.exe unhandle exception System.Management.Automation.CmdletInvocationException -

unity3d - Fatal error- Monodevelop-Unity failed to start -