在客户端我创建了一些输入,例如:
var title = document.createElement('input');
title.setAttribute('type', 'text');
title.setAttribute('name', 'Title');
myForm.appendChild(title);
这个字段应该是必需的。我该怎么做这个验证?
答案 0 :(得分:1)
我该如何进行验证?
您应该对jquery unobtrusive验证使用的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);
另请注意,除非您使用<span>
帮助程序将所有错误消息集中在一个位置,否则您可能希望提供用于显示错误消息的相应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')
);
});