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

时间:2016-05-26 07:33:53

标签: c# jquery asp.net razor

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

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

这是ASP.NET Razor生成的:

<input class="productClass" data-val="true" data-val-length="No más 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" />
<span class="field-validation-valid" data-valmsg-for="Configurations[0].Name" data-valmsg-replace="true"></span>

这是我用jQuery生成的:

<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ás de 50 caracteres" data-val="true" class="productClass" ></input>
<span data-valmsg-replace="true" data-valmsg-for="Configurations[3].Name" class="field-validation-valid"></span>

两者都具有相同值的相同数据字段。唯一不同的是我生成的那个在其属性中有不同的顺序。

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

你知道有什么不对吗?有什么建议吗?

1 个答案:

答案 0 :(得分:2)

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

$("form").removeData("validator");
$("form").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse("form");