0

ASP.NET MVC 3應用程序。由於在通過javaScript動態隱藏的表單字段上存在ValidationSummary錯誤,無法發佈表單。

我想發佈表單,它有一些使用JavaScript出現和消失的動態字段。我正在使用IValidatableObject對這些動態字段中的某些進行服務器端驗證。

當這些字段是可見的,我張貼表單時,驗證工作正常,它會在ValidationSummary中提供相應的錯誤消息並回傳。現在,雖然這些錯誤消息在那裏,我隱藏這些字段使用

document.getElementById(「schoolNotListed」)。style.display =「none」;

我試着重新發布表單,每次都會彈出ValidationSummary錯誤。控件不會到達控制器,也不會到達視圖模型中的Validate()函數。有些客戶端驗證是阻止表單發佈。

有沒有一種方法可以跳過或禁用這些現在通過javaScript隱藏的字段的驗證。或者我可以通過javaScript清除ModelState?

如果您對如何解決它有不同的建議?

感謝

+0

你無法通過JavaScript清除modestate。您能否在虛擬(有效)數據隱藏時預先填寫您的數據? – 2012-07-26 01:35:36

回答

0

客戶端的JavaScript驗證庫建立了一個規則對象,做驗證

當你隱藏起來,嘗試刪除驗證

$('#schoolNotListed').hide().rules('remove', 'required') 
$.validate.unobtrusive.parse() 

第二行告訴驗證重建規則對象。

這個問題可能是有用的:Disable required validation by JavaScript