2016-06-12 65 views
0

你好我试图停止提交与jquery的过程,但它不工作。停止提交表单与jquery

以下是提交过程的当前代码。当返回错误时不应该提交。

function validateinput(gu) { 

var geocoder= new google.maps.Geocoder(); 
var address = $(gu).find("input[name=autocomplete]").val(); 


geocoder.geocode({ 'address': address, 
    componentRestrictions: { 
     country: 'DE' 
    }}, function(results, status) { 
    if (status == google.maps.GeocoderStatus.OK) { 

     if(!results[1]){ 


      $.each(results[0].address_components, function(){ 

      if(this.types[0] == "street_number"){ street_number = this.long_name; } 
      if(this.types[0] == "route"){ route = this.long_name; } 
      if(this.types[0] == "administrative_area_level_1"){ administrative_area_level_1 = this.long_name; } 
      if(this.types[0] == "postal_code"){ postal_code = this.long_name; } 

      }); 


    if(typeof(street_number) !== "undefined" && street_number !== null && street_number !== '') { 
     $(gu).find("input[name=street_number]").val(street_number); 
     $(gu).find("input[name=route]").val(route); 
     $(gu).find("input[name=administrative_area_level_1]").val(administrative_area_level_1); 
     $(gu).find("input[name=postal_code]").val(postal_code); 
     $(gu).find("input[name=lat]").val(results[0].geometry.location.lat()); 
     $(gu).find("input[name=lng]").val(results[0].geometry.location.lng()); 
return true; 
    }else{ 

     $(gu).find("input[name=autocomplete]").val(administrative_area_level_1 + ", " + route + " "); 
     $(gu).find("input[name=autocomplete]").focus(); 
     $(gu).find('span.addr_error').html('Bitte gebe deine Hausnr. an.'); 
return false; 

    } 


     }else{ 

     $(gu).find("input[name=autocomplete]").focus(); 
     $(gu).find('span.addr_error').html('Bitte wähle deine Lieferadresse.'); 
return false; 



     } 



    }else { 
     $(gu).find("input[name=autocomplete]").focus(); 
     $(gu).find('span.addr_error').html('Wir konnten deine Adresse nicht finden.'); 
return false; 

    }); 

} 


$("#aadress-form").submit(function(){ return validateinput(this) }); 
$("#ladress-form").submit(function(){ return validateinput(this) }); 

如何停止提交表单?对不起,我的英语不好我希望你能理解我的问题,并会帮助我。

+0

'geocoder.geocode()'方法是异步,您应该从'validateinput返回'FALSE'()'和仅在需要时提交'form',例如使用'gu.submit();'(以在你的代码中返回true;') –

+0

谢谢你完美的作品, –

回答

0

你可以通过这样做来阻止提交。

$("#aadress-form").submit(function(e){e.preventDefault(); return validateinput(this) }); 
$("#ladress-form").submit(function(e){ e.preventDefault(); return validateinput(this) }); 
+0

谢谢你的anwer,但是A.Wolff在评论中的解答已经解决了这个问题 –