【问题标题】:stop submitting a form with jquery停止使用 jquery 提交表单
【发布时间】:2025-11-23 20:50:01
【问题描述】:

您好,我正在尝试停止使用 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) });

如何停止提交表单?抱歉我的英语不好,希望您能理解我的问题并帮助我。

【问题讨论】:

  • geocoder.geocode() 方法是异步的,您应该从validateinput() 返回false 并且仅在需要时提交form,例如使用gu.submit();(在您的return true; 代码中)
  • 谢谢它完美运行,

标签: javascript jquery forms geocode


【解决方案1】:

您可以通过这样做来停止提交。

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

【讨论】:

  • 感谢您的回答,但 A. Wolff 在评论中的解决方案已经解决了问题
最近更新 更多