这是我的问题......
我有一个页面,最初呈现并显示使用Ajax.BeginForm创建的AJAX表单.输入一些标准并发布AJAX表单.返回部分视图,其中包含使用Html.BeginForm创建的HTML表单.
到目前为止一切都那么好......到目前为止一切都运行良好.我不引人注目的客户端验证对从局部视图创建的元素非常有用.当我现在尝试创建一些动态输入元素(通过jQuery)并将它们插入/附加到由局部视图创建的表单时,我的问题就出现了.我无法在动态创建的元素上进行任何不显眼的客户端验证.
我尝试过: - 克隆现有元素,修改它们的ID /名称并将它们附加到DOM中. - 创建html字符串并将其插入DOM中.
每次插入动态元素后,我都尝试调用: - $ .validator.unobtrusive.parseElement()[new element] - $ .validator.unobtrusive.parse()[new container,document,etc] - $ .validator.unobtrusive .parseDynamicContent()[插件]
这是jQuery代码的详细信息......
$("#insert").live("click", function () {
var html = "<input type='text' value='' name='CustomerNominationVolume' id='CustomerNominationVolume' data-val-required='The Nomination (Dth) field is required.' data-val-number='The field Nomination (Dth) must be a number.' data-val='true' /><br />"
html += "<span class='field-validation-valid' data-valmsg-replace='true' data-valmsg-for='CustomerNominationVolume'></span>";
$("#new").html(html);
});
$("#parse").live("click", function () {
$.validator.unobtrusive.parse(document);
});
$("#validate").live("click", function () {
var element = $("#CustomerNominationVolume");
var form = $(element).first().closest('form');
form.validate().element(element);
}); …Run Code Online (Sandbox Code Playgroud)