我的问题如下:
我正在使用MVC 2.0框架的客户端验证功能。
当我以简单的形式使用验证时,一切都很好。
但是当我使用Ajax表单并更新ajax表单的字段时,客户端验证不起作用。
我想,我必须在ajax调用后刷新验证,但我不知道应该怎么做。
任何人都可以帮助我?
答案 0 :(得分:0)
这是因为window.mvcClientValidationMetadata填充了与jquery验证或mvc客户端验证函数不同的“范围”。我用jquery验证解决了这个问题,在ajax.begin表单之前添加了以下行。像这样:
<div id="result"></div>
<% Html.EnableClientValidation(); %>
<% using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "result" }))
// here goes the form
<input type="submit" value="Create" />
<% } %>
this is the required code that needs to be added:
<script type="text/javascript">
function RefreshClientValidationMetadata() {
var allFormOptions = window.mvcClientValidationMetadata;
if (allFormOptions) {
while (allFormOptions.length > 0) {
var thisFormOptions = allFormOptions.pop();
__MVC_EnableClientValidation(thisFormOptions);
}
}
}
RefreshClientValidationMetadata();
</script>
当然,可以在任何地方添加RefreshClientValidationMetadata()函数。
希望这有帮助!
答案 1 :(得分:0)
试试这个:
$(document).ajaxComplete(function () {
$.validator.unobtrusive.parse(document);
});