Asp.net mvc 3 新元素的ASP MVC 3 Javascript验证

Asp.net mvc 3 新元素的ASP MVC 3 Javascript验证,asp.net-mvc-3,jquery-validate,validation,Asp.net Mvc 3,Jquery Validate,Validation,在客户端上,我创建了一些输入,例如: var title = document.createElement('input'); title.setAttribute('type', 'text'); title.setAttribute('name', 'Title'); myForm.appendChild(title); 此字段应为必填字段。如何进行此验证 如何进行此验证 您应该将jquery unobtrusive validation使用的HTML5data-*属性应用于它,然后调用j

在客户端上,我创建了一些输入,例如:

var title = document.createElement('input');
title.setAttribute('type', 'text');
title.setAttribute('name', 'Title');
myForm.appendChild(title);
此字段应为必填字段。如何进行此验证

如何进行此验证

您应该将jquery unobtrusive validation使用的HTML5
data-*
属性应用于它,然后调用
jquery.validator.unobtrusive.parse
强制插件重新分析已动态添加的规则:

var title = document.createElement('input');
title.setAttribute('type', 'text');
title.setAttribute('id', 'Title');
title.setAttribute('name', 'Title');
title.setAttribute('data-val', 'true');
title.setAttribute('data-val-required', 'This field is required');
myForm.appendChild(title);

$(myForm).removeData("validator");
$(myForm).removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse(myForm);
另外请注意,您可能希望提供相应的
元素,用于显示错误消息,除非您使用
Html.ValidationSummary
帮助程序将所有错误消息集中在一个位置。此元素应如下所示:

<span class="field-validation-valid" data-valmsg-for="Title" data-valmsg-replace="true"></span>

这可以用一种更容易发问的方式来写:

$(function () {
    $.validator.unobtrusive.parse(
        $('form').append(
            $('<input/>', {
                type: 'text',
                id: 'Title',
                name: 'Title'
            })
            .attr('data-val', 'true')
            .attr('data-val-required', 'This field is required')
        )
        .append(
            $('<span/>')
                .addClass('field-validation-valid')
                .attr('data-valmsg-for', 'Title')
                .attr('data-valmsg-replace', 'true')
        )
        .removeData('validator')
        .removeData('unobtrusiveValidation')
    );
});
$(函数(){
$.validator.unobtrusive.parse(
$('form')。追加(
$('', {
键入:“文本”,
id:'标题',
姓名:'头衔'
})
.attr('data-val','true')
.attr('data-val-required','此字段为必填项')
)
.附加(
$('')
.addClass('field-validation-valid')
.attr('data-valmsg-for','Title')
.attr('data-valmsg-replace','true')
)
.removeData(“验证器”)
.removeData(“不引人注目的验证”)
);
});

当我这样做时,我总是会收到一个错误,上面写着“无法读取未定义的属性‘unobtrusive’”,否则验证会起作用,但我似乎无法清除旧的验证,然后在添加新字段后重建它。有什么想法吗?