jquery - 为什么 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 中,但它没有帮助。
解决方案
尝试这个:
$(document).ready(function () {
$("form").each(function () { $.data($(this)[0], 'validator', false); });
$.validator.unobtrusive.parse("form");
});
推荐阅读
- sql - 具有可变长度参数的 Sql 子字符串函数
- c# - 如何重启控制台应用程序 c# mono MacOS
- android - TextInputEditText 在作为弹出窗口的一部分创建时消失
- android - 无法解决:com.android.support:design-v7:27.1.1
- php - 如何在php中停止按钮访问?
- jquery - 如何在不更新所有页面的情况下添加新的summernote 工具栏?
- kendo-ui - 带有复选框和键盘导航的 Kendo 下拉列表
- angular - Angular 在布尔函数中使用 Promise
- angular - cellClick 事件未触发 Angular 4 Kendo UI
- selenium - Utils - 错误 - Selenium 中的错误 java.lang.NullPointerException