Jquery 验证触发但不阻止表单提交

Posted

技术标签:

【中文标题】Jquery 验证触发但不阻止表单提交【英文标题】:Jquery validation triggers but doesn't prevent the form submitting 【发布时间】:2016-11-13 07:40:40 【问题描述】:

我有一个带有 Knockout 的 MVC 项目。

我正在尝试使用 jQuery 验证来验证我的注册视图。

这是注册视图:

<form data-bind="submit: register" id="formRegister">
    <label>Email</label>
    <input id="registerEmail" name="registerEmail" class="required email form-control" 
           type="text" data-bind="value: registerEmail" />

    <label>Password</label>
    <input id="registerPassword" name="registerPassword" class="required form-control" 
           type="password" data-bind="value: registerPassword" />

    <label>Confirm Password</label>
    <input id="registerPassword2" name="registerPassword2" class="required form-control" 
           type="password" data-bind="value: registerPassword2" />

    <button type="submit" class="btn btn-default">Register</button>
</form>

还有 jquery:

$(function () 
    $(document).ready(function () 
        $("#formRegister").validate();
        $.extend($.validator.messages,  required: "*", email: "Invalid email address." );
    );
);

当我提交表单时,会触发验证,但表单也在提交中

【问题讨论】:

需要返回false来阻止正常的浏览器表单处理。尝试通过点击绑定捕获按钮提交,并返回 false @brianlmerritt,谢谢,成功了! 【参考方案1】:

如果表单无效,您必须返回 false。

$(document).on("submit", "#formRegister", function(evt) 
      if(!$(evt.target).valid())  return false; 
 );

【讨论】:

以上是关于Jquery 验证触发但不阻止表单提交的主要内容,如果未能解决你的问题,请参考以下文章

jquery ajax 验证表单,没通过,则阻止提交表单,怎么做?

jQuery Validate 提交表单验证失败扩展方法

JQuery.Validate 插件可以阻止提交 Ajax 表单吗

jQuery - e.preventDefault 难题/阻止默认后无法提交表单

jQuery Validate 验证但不提交

使用JS对form的内容验证失败后阻止提交