使用非侵入式验证时 jQuery 验证未执行

标签 jquery asp.net asp.net-mvc jquery-validate unobtrusive-validation

我正在使用 ASP.NET MVC,我的 bundle 中有 jQuery、jQuery validate、jQuery validate.config、jQuery validate unobtrusive、uno​​btrusive ajax 和其他库。我的页面中有一个表单,里面有一些字段。它有一个按钮类型的按钮,当用户单击该按钮时,我正在尝试做一些事情,然后执行 $(form).submit(),我希望它被拦截jQuery 验证方法中的提交处理程序,而不是提交表单,它将向我的服务器发送一个 ajax 帖子。我想使用 jQuery.validate 方法的原因是我在表单中有很多条件必填字段和其他验证。但是由于某种原因,jQuery 验证根本没有执行/触发,并且正在提交表单而不是被提交处理程序拦截。如果我正确设置了所有内容,我不知道为什么它不起作用。这是我对 jQuery 验证方法的调用。我从来没有看到警告说是好的。

$('form[name="submitCheckoutForm"]').validate({
    debug: true,
    rules: {
        "Password": {
            required: true
        }
    },
    submitHandler: function (form) {
        //actions.SubmitCheckout();
        alert('is good');
        return false;
    }
});

最佳答案

如果您正在使用 Unobtrusive Validation 插件,那么您也不能调用 jQuery Validate 的 .validate() 方法。

为什么?

  1. Unobtrusive Validation 插件自动根据表单中的各种数据属性构造.validate() 方法。

  2. jQuery Validate 插件不允许在同一个表单上多次调用 .validate() 方法。因此,由于您已经在使用非侵入式验证来构造 .validate(),因此您对 .validate() 的其他调用将被完全忽略。

关于使用非侵入式验证时 jQuery 验证未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50855644/

相关文章:

javascript - 如何让物体向鼠标位置移动?

c# - 创建新记录时,如何使用过滤器中的值填充某些字段?

JQuery/MVC 搜索问题

c# - jQuery ajax调用未击中 Controller ,因为字符串数据参数较大

asp.net - XMLSerializer.Serialize 上的 .NET OutOfMemoryException

asp.net-mvc - 针对同一元素的多个标签助手

javascript - 单击每个重复的 href 的删除链接?

javascript - 不知道为什么语法错误 ")"javascript

jquery - 同步多个 CSS3 动画

javascript - 如何从网页引用 TypeScript 文件