我怎樣才能做到這一點的驗證?
您應該應用HTML5 data-*
屬性,它是由jQuery的不顯眼的驗證使用,然後調用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>
元素。這個元素應該是這樣的:
<span class="field-validation-valid" data-valmsg-for="Title" data-valmsg-replace="true"></span>
這可以寫在一個更jQueryish方式:
$(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')
);
});
謝謝你,達林! – faagira 2012-02-21 18:47:22
當我這樣做,我總是得到,指出「無法讀取屬性未定義‘不顯眼’」驗證的工作原理否則會出現錯誤,但我似乎就是不能夠清除舊的有效性,然後重建它一旦我我添加了新的領域。有什麼想法嗎? – 2013-06-28 19:10:25