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

时间:2016-07-11 11:15:45

标签: jquery asp.net-mvc knockout.js jquery-validate

我有一个使用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." });
    });
});

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

1 个答案:

答案 0 :(得分:4)

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

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