我的問題如下:ASP.NET MVC 2 Ajax形式的客戶端驗證功能
我正在使用MVC 2.0框架的客戶端驗證功能。
一切都很好,當我在一個簡單的形式使用驗證。
但是,當我使用Ajax窗體,並更新ajax窗體的字段時,客戶端驗證不起作用。
我想,我必須刷新ajax調用後的驗證,但我不知道該怎麼做。
有人可以幫助我嗎?
我的問題如下:ASP.NET MVC 2 Ajax形式的客戶端驗證功能
我正在使用MVC 2.0框架的客戶端驗證功能。
一切都很好,當我在一個簡單的形式使用驗證。
但是,當我使用Ajax窗體,並更新ajax窗體的字段時,客戶端驗證不起作用。
我想,我必須刷新ajax調用後的驗證,但我不知道該怎麼做。
有人可以幫助我嗎?
發生這種情況是因爲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()可以添加到任何地方。
希望得到這個幫助!
試試這個:
$(document).ajaxComplete(function() {
$.validator.unobtrusive.parse(document);
});
1.你是什麼意思的 「的MVC 2.0框架的客戶端驗證功能」 嗎? jquery-validate出現在腦海中,但我相信還有其他含義 2.你是什麼意思的「當......我更新ajax表單的字段,客戶端驗證不起作用」?你希望在你從服務器填充它們之後,這些字段是否被驗證? 也許你正在做的一些簡單的例子將有助於... – Felix 2010-03-22 02:15:05
一些代碼示例,你有什麼驗證? – 2010-03-23 03:05:10