2016-06-12 2 views
0

안녕하세요 jquery로 프로세스 제출을 중단하려하지만 작동하지 않습니다.jquery로 양식 제출 중단

다음은 제출 프로세스의 현재 코드입니다. false가 반환되면 제출이 없어야합니다.

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()'메소드는 비동기은 예를 들어'gu.submit()를 사용하여, 당신은) (validateinput'에서'FALSE '를 반환해야합니다'하고 필요한 경우에만 form''제출이다'(에 'return 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의 solutin이 문제를 이미 해결했습니다. –