2016-06-12 5 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()'()メソッドは非同期である、あなたは 'validateinput()'から 'false'のを返す必要がありますし、必要な場合にのみ、' form'提出し、例えば 'gu.submitを使用して;'(中'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がコメントを修正しました。 –

関連する問題