2010-01-10 64 views
1

我需要在我的一個表單中包含客戶端驗證,並且網頁設計沒有考慮驗證消息的任何空間。是否有任何使用工具提示顯示驗證消息的客戶端驗證庫?

我認爲使用驗證工具提示和一些無效輸入控件的邊框一起可以完成這項工作,但是我遇到了使用工具提示的JavaScript驗證問題。

任何人都可以推薦一個解決方案嗎?最好直接支持ASP.NET MVC,但這不是一個嚴格的要求,我準備定製任何JavaScript解決方案以適應ASP.NET MVC。

我正在使用城堡驗證器在客戶端執行服務器端驗證和MvcValidation(http://blog.codeville.net/2008/04/30/model-based-client-side-validation-for-aspnet-mvc/)解決方案,該解決方案使用LiveValidation。這工作非常好,但需要一些定製,不要在控件旁邊顯示驗證消息。

回答

2

jQuery Validation library是最受歡迎的選擇之一。對於你的問題,你可以重寫是errorPlacement調用是這樣的:

$('formName').validate({ 
    errorPlacement: function(error, element) {  
        element.attr("title",error.html()) 
         .addClass("cssClassWithBorder"); 
        } 
}); 

可以完整列表選項在這裏讀了起來:Validation plugin options

有幾個工具包在那裏,一個最適用的基於在你的問題將是xVal by Steve Sanderson

請記住,ASP.Net MVC 2 is bringing a lot more to the table在註釋,驗證和簡化客戶端/服務器驗證重複的代碼,現在在那裏。這是一個基於提供商的模式,應該有大量的社區提供商出來,可以提供更多你所追求的內容。

默認實現將主要基於jQuery Validation框架(與上面相同)以註釋冒泡的方式(對於服務器和客戶端代碼來說,類的屬性相同)...非常類似於xVal可以。根據你的時間表和靈活性,等待MVC 2可能是一個更好的選擇和更少的工作。

在這個答案的時候,MVC 2 RC是目前這個版本。

+0

感謝您的回答,我一定會看看jQuery驗證庫。請注意,我在我的問題中鏈接的方法使用基於模型的驗證在一個地方指定 - 不會出現驗證規則客戶端與服務器端的重複。 – Marek 2010-01-10 15:03:28

+0

對不起,澄清一下,我並不是特別指你的解決方案,但總的來說,MVC客戶端和服務器驗證有很多重複的工作,2.0版本應該會有所幫助。 – 2010-01-10 15:29:33

0

這對您的需求來說可能太重了,但如果您還沒有看過extjs.com和jquery,那麼您可能需要查看一下。