Asp.net-Mvc-3

jquery.validate.unobtrusive 不使用動態注入的元素

  • December 10, 2010

我正在使用ASP.Net MVC3,使用客戶端驗證的更簡單方法是啟用jquery.validate.unobtrusive. 一切正常,對於來自伺服器的東西。

但是當我嘗試使用 javascript 注入一些新的“輸入”時,我知道我需要呼叫$.validator.unobtrusive.parse()以重新綁定驗證。但是,所有這些動態注入的欄位都不起作用。

更糟糕的是,我嘗試手動綁定使用jquery.validate,但它也不起作用。有什麼想法嗎?

我為 jquery.validate.unobtrusive 庫創建了一個擴展,它針對我的情況解決了這個問題——它可能很有趣。

<http://xhalent.wordpress.com/2011/01/24/applying-unobtrusive-validation-to-dynamic-content/>

我嘗試了 Xhalent 的方法,但不幸的是它對我不起作用。羅賓的方法確實奏效了,也沒有奏效。它適用於動態添加的元素,但如果您嘗試使用 JQuery 從 DOM 中刪除所有驗證屬性和跨度,驗證庫仍然會嘗試驗證它們。

但是,如果除了“validationData”之外,您還刪除了表單的“unobtrusiveValidation”數據,它就像一個魅力,可以動態添加和刪除您想要驗證或未驗證的元素。

$("form").removeData("validator");
$("form").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse("form");

引用自:https://stackoverflow.com/questions/4406291