首页 > 解决方案 > 为什么 jQuery 验证函数在 ASP.NET MVC Core 应用程序中不起作用?

问题描述

我有 ASP.NET Core MVC 应用程序,我想使用 jQuery 客户端验证。我在 _Layout.cshtml 中导入脚本,并在源文件中看到它们:

 <script src="~/lib/jquery/dist/jquery.js"></script>
 <script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
 <script src="~/lib/jquery-validation/dist/additional-methods.js"></script>
 <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>

当我使用带有 MVC 表单(asp-action 和 asp-controller)的简单提交按钮时,不显眼的验证效果很好。出现错误,没关系。但是当我使用 Ajax 向控制器提交表单并且我想调用 jQuery 验证函数,如 .validate()、$.validator.unobtrusive.parse('form')等时,就会出现问题。

然后控制台中出现错误,例如:

$(...).validate 不是函数
$.validator 未定义

我试图将脚本放在视图中,直接放在我使用它们的脚本之前。我也将我的脚本放在 _Layout.cshtml 中,但它没有帮助。

标签: jqueryasp.net-mvcvalidationasp.net-core-mvc

解决方案


尝试这个:

$(document).ready(function () {
    $("form").each(function () { $.data($(this)[0], 'validator', false); });
    $.validator.unobtrusive.parse("form");
});

推荐阅读