2016-03-08 74 views
0

我有一个类似的问题:Using MVC and JQuery to dynamically & consistently add values to a table,但不同的是:使用MVC3和jQuery动态和十个分量的DataAnnotations

我有表,我克隆的最后一行(保持相同的格式)用:

var $tableBody = $('#record').find("tbody"); 
$trLast = $tableBody.find("tr:last"); 
$trNew = $trLast.clone(); 
$trLast.after($trNew); 

`

行被成功地创建,但验证被绑定到第一行(inputsselectstextarea

检查的elment,显示:

<td> 
// Code generated with the jquery .clone() 
    <input data-val="true" data-val-required="Es necesario agregar una fecha." id="Salidas_0__Fecha" name="Salidas[1].Fecha" type="datetime" value="" autocomplete="off" class="hasDatepicker input-validation-error"> 
    <span class="field-validation-valid" data-valmsg-for="Salidas[1].Fecha" data-valmsg-replace="true"></span> 
</td> 

field-validation-valid不绑定到input。 存在一种方法来做到这一点?

+1

“field-validation-valid”没有绑定到“输入”,甚至意味着什么?看起来这只是一个加入到“span”中的'class'。 – David

回答

0

首先,当你与动态内容玩,你必须jQuery验证添加到新的内容克隆行后:

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

其次,属性“数据valmsg换”,对跨, “field-validation-valid”类,必须与表中每行相应输入的属性“名称”相同。

因此,例如,三排一个表有看起来像这样:

<td> 
    <input data-val="true" data-val-required="Es necesario agregar una fecha." id="Salidas_0__Fecha" name="Salidas[0].Fecha" type="datetime" value="" autocomplete="off" class="hasDatepicker input-validation-error"> 
    <span class="field-validation-valid" data-valmsg-for="Salidas[0].Fecha" data-valmsg-replace="true"></span> 
</td> 
<td> 
    <input data-val="true" data-val-required="Es necesario agregar una fecha." id="Salidas_1__Fecha" name="Salidas[1].Fecha" type="datetime" value="" autocomplete="off" class="hasDatepicker input-validation-error"> 
    <span class="field-validation-valid" data-valmsg-for="Salidas[1].Fecha" data-valmsg-replace="true"></span> 
</td> 
<td> 
    <input data-val="true" data-val-required="Es necesario agregar una fecha." id="Salidas_2__Fecha" name="Salidas[2].Fecha" type="datetime" value="" autocomplete="off" class="hasDatepicker input-validation-error"> 
    <span class="field-validation-valid" data-valmsg-for="Salidas[2].Fecha" data-valmsg-replace="true"></span> 
</td> 

而且最后还需要正确的型号发布窗体时绑定。