0
我使用html5设计了MVC WebApp。MVC Jquery验证数据表。 New Row未验证
我有一个表格(由剃刀打造,所以一切都是正确命名的),只要我不会添加一个新行的jQuery验证工作的魅力。
当我添加一个新行时,Jquery不能识别新行。
我试图删除旧的验证,并添加新的一个 - >无结果 - $ .removeData(形式,“验证”); form.validate()
我试图以某种方式来刷新它,但它只是不会工作。 我的一些解决方案的名称是重复的,但这不是我的问题。
任何关于此的帮助?
初始化我的表
$("#plantsTable").dataTable({ "paging": false, "searching": false, "bInfo": false, "fixedHeader": true, "columns": [ { "orderDataType": "dom-text-numeric", "sType": "numeric" }, { "orderDataType": "dom-text", "sType": "string" }, { "orderDataType": "dom-select", "sType": "string" }, { "orderDataType": "dom-checkbox", "sType": "numeric", }, { "orderDataType": "dom-checkbox", "sType": "numeric", }, null, null, null ], "order": [[1, "asc"]], "aoColumnDefs": [{ "bSortable": false, "aTargets": ["no-sort"] }]
});
初始化验证
$(selector).validate(); $(selector).valid(); $(selector).tooltip(...);
添加新行
addNewRow:功能(tableSelector,控制器,动作,元件) { hasChanges = TRUE; var rowCount = $(tableSelector).children('tbody')。children('tr')。length; (?)
$.ajax({ url: "/" + controller + "/" + action, type: "POST", success: function (data) { $(tableSelector).children('tbody').append(data); $(element).show(); }, data: { "rowCount": rowCount } });
}
重新验证
$(selector).validate(); $(selector).valid(); $(selector).tooltip(...);
样本HTML(添加新行后)
<form action="/Anlagen" id="plantsForm" method="post" novalidate="novalidate"> <tr role="row" class="odd"> <td class="tableInputCell" hidden=""> <input data-val="true" data-val-number="The field AnlageNrID must be a number." id="Anlagen_2__AnlageNrID" name="Anlagen[2].AnlageNrID" readonly="readonly" type="text" value="28" tabindex="-1"> <span class="field-validation-valid" data-valmsg-for="Anlagen[2].AnlageNrID" data-valmsg-replace="true" style="display:none"></span> </td> <td class="tableInputCell sorting_1"> <input data-val="true" data-val-length="Das Feld "Bezeichnung" muss eine Zeichenfolge mit einer maximalen Länge von 30 sein." data-val-length-max="30" data-val-required="Das Feld "Bezeichnung" ist erforderlich." id="Anlagen_2__AnlageBez" name="Anlagen[2].AnlageBez" style="width:450px" type="text" value="(Alle Anlagen)" class="valid"> <span class="field-validation-valid" data-valmsg-for="Anlagen[2].AnlageBez" data-valmsg-replace="true" style="display:none"></span> </td> </tr> <tr> <td class="tableInputCell" hidden=""> <input data-val="true" data-val-number="The field AnlageNrID must be a number." id="Anlagen_3__AnlageNrID" name="Anlagen[3].AnlageNrID" readonly="readonly" type="text" value=""> <span class="field-validation-valid" data-valmsg-for="Anlagen[3].AnlageNrID" data-valmsg-replace="true" style="display:none"></span> </td> <td class="tableInputCell"> <input data-val="true" data-val-length="Das Feld "Bezeichnung" muss eine Zeichenfolge mit einer maximalen Länge von 30 sein." data-val-length-max="30" data-val-required="Das Feld "Bezeichnung" ist erforderlich." id="Anlagen_3__AnlageBez" name="Anlagen[3].AnlageBez" style="width:450px" type="text" value=""> <span class="field-validation-valid" data-valmsg-for="Anlagen[3].AnlageBez" data-valmsg-replace="true" style="display:none"></span> </td> </tr> </form>
您应该使用的解决方案,还删除了以前的valdiation事件处理程序:'$( “形式”)removeData( “验证”) .removeData( “unobtrusiveValidation”) .off(“submit.validate点击.validate focusin.validate focusout.validate keyup.validate invalid-form.validate“); $ .validator.unobtrusive.parse(“form”);' – JotaBe