2009-01-29 91 views
5

我真的想在我的ASP.NET Web窗體應用程序(不MVC)使用jQuery Validation pluginjQuery的驗證插件和ASP.NET驗證器Web窗體

我看重的更豐富的UI體驗,我可以爲最終用戶提供jQuery驗證和我有一些要求,以突出使用紅色邊框(CSS)的無效字段。

我重視asp.net驗證程序,因爲它們不僅在客戶端上運行驗證,而且在服務器上運行驗證,因此我不會向任何足夠聰明地關閉瀏覽器中的javascript的用戶打開各種安全漏洞。

所以我要尋找一個乾淨的方式來整合這兩種技術。

我能想到的最好的辦法是讓所有的ASP.NET驗證器設置爲enableclientscript = false,然後在客戶端重複jQuery和服務器上的驗證規則作爲asp.net驗證器,但我已經可以看到一些挑戰用這種方法。

最後,我發現最低摩擦的方式來實現突出與asp.net驗證和jquery不是使用jQuery驗證插件,而是使用簡單的jQuery的行(請注意,確切的語法將取決於你如何佈置窗體):

<script type='text/javascript'> 


     $("input[@type=submit]").click(function() { 
     $('span.validationerror:hidden').parent().parent().find('input').removeClass('inputError'); 
     $('span.validationerror:visible').parent().parent().find('input').addClass('inputError');       

     }); 

</script> 

回答

2

如果你是認真的驗證,我會去了解一下像彼得百隆的驗證程序(http://www.peterblum.com/Home.aspx),因爲它們應該能夠做你想做的一切更多。他們不使用JQuery,但記住JQuery的全部重點是節省開發人員的時間 - 如果總體效果相同,最終用戶不知道或不關心是否使用JQuery。

3

您可以使用asp.net和jQuery沒有問題一起驗證器......甚至在同一控制...你只需要設置的CssClass的控制,這樣的jQuery可以找到它.. 。然後你添加OnClientClick="return $('#aspnetForm').valid();"到你的submit button(s)

一定的,包括平時的jQuery庫和jquery.validate.js和添加過程的文件準備好功能等