【问题标题】:Jquery form submit after prevent default防止默认后提交Jquery表单
【发布时间】:2018-06-19 13:59:01
【问题描述】:

我真的很长时间以来一直坚持这个问题。我在 Rails 应用程序中工作,并且有创建业务的表单。

当我编写以下代码的所有 JQuery 自定义验证通过时,现在应该提交表单。

$("form#new_business").submit(function(e){
e.preventDefault();
var valid = true;

var attribute_value = $("input#business_"+to_attribute+"_id").val();

if (attribute_value == '') { // means validation fail
  valid = false ;
  flashMessage(to_attribute)
}

if (valid) this.submit();

});

现在,当验证失败时,它会成功显示“属性不能为空”的 flash 消息,但是当验证通过时,不提交表单,提交按钮变为禁用:(

【问题讨论】:

    标签: jquery forms preventdefault


    【解决方案1】:

    您可以使用$('form#new_business')[0].submit(); 而不是this.submit();,因此您的代码变为:

    $("form#new_business").submit(function(e){
      e.preventDefault();
      var valid = true;
      var attribute_value = $("input#business_"+to_attribute+"_id").val();
    
      if (attribute_value == '') { // means validation fail
        valid = false ;
        flashMessage(to_attribute)
      }
    
      if (valid) {
        $('form#new_business')[0].submit();
      }
    });
    

    【讨论】:

    • 这不起作用,因为一旦验证失败,提交按钮就会被禁用。
    • 所以在再次提交之前启用它。或者,提交表单,而不是按钮
    猜你喜欢
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 2021-01-30
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多