验证不适用于动态添加的字段

Van*_*nel 4 c# asp.net jquery razor

我正在使用 Razor、C# 和 .NET Framework 4.6.1 开发 ASP.NET MVC 5 应用程序。

\n\n

我对使用 jQuery 动态生成的输入字段进行验证时遇到问题。

\n\n

这是 ASP.NET Razor 生成的内容:

\n\n
<input class="productClass" data-val="true" data-val-length="No m\xc3\xa1s de 50 caracteres" data-val-length-max="50" data-val-required="Campo necesario" id="Configurations[0].Name" name="Configurations[0].Name" type="text" value="Estuche" />\n<span class="field-validation-valid" data-valmsg-for="Configurations[0].Name" data-valmsg-replace="true"></span>\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我用 jQuery 生成的:

\n\n
<input type="text" name="Configurations[3].Name" id="Configurations[3].Name" data-val-required="Campo necesario" data-val-length-max="50" data-val-length="No m\xc3\xa1s de 50 caracteres" data-val="true" class="productClass" ></input>\n<span data-valmsg-replace="true" data-valmsg-for="Configurations[3].Name" class="field-validation-valid"></span>\n
Run Code Online (Sandbox Code Playgroud)\n\n

两者具有相同的数据字段和相同的值。唯一的不同是我生成的属性的顺序不同。

\n\n

验证适用于 ASP.NET Razor 自动生成的输入,但我的不起作用。我可以在 NAME 上设置一个空值,但它不会验证它。

\n\n

你看出什么问题了吗?有什么建议吗?

\n

小智 7

在脚本中生成动态字段时添加以下代码:

$("form").removeData("validator");
$("form").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse("form");
Run Code Online (Sandbox Code Playgroud)