【问题标题】:Why jQuery validation funcs are not working in ASP.NET MVC Core app?为什么 jQuery 验证函数在 ASP.NET MVC Core 应用程序中不起作用?
【发布时间】:2020-06-30 22:47:18
【问题描述】:

我有 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 中,但它没有帮助。

【问题讨论】:

  • 尝试参考this thread中提供的相关主题的回复,这可能会有所帮助。

标签: jquery asp.net-mvc validation asp.net-core-mvc


【解决方案1】:

试试这个:

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

【讨论】:

  • 它仍然返回 $.validator is undefined 。我发现我们可以通过 PartialView 加载脚本。在 ASP.NET Core MVC 应用程序中有默认验证 Parial _ValidationScriptPartial 但没有帮助。 @section Scripts { @await Html.PartialAsync("~/Views/Shared/_ValidationScriptsPartial.cshtml") &lt;script src="~/js/myScriptWhereIWantToUseValidator.js"&gt;&lt;/script&gt; }
  • link _Layout.cshtml link View.cshtml link _FormPartialView.cshtml 而在 tyresItems.js 中我想使用验证方法,即 $('#addTyreItem-form').validate() 但它不起作用。
  • 可能是因为打开模式并在 DOM 底部呈现它们,毕竟
猜你喜欢
  • 1970-01-01
  • 2021-05-20
  • 2020-06-20
  • 2021-12-14
  • 2020-12-28
  • 1970-01-01
  • 1970-01-01
  • 2019-06-30
  • 1970-01-01
相关资源
最近更新 更多