第三點(diǎn):在反復(fù)使用jQuery.Validate進(jìn)行AJAX驗(yàn)證時(shí),總是需要編寫相關(guān)AJAX參數(shù),可否進(jìn)行進(jìn)一步封裝?(具體見High-3.aspx和jquery.validate.extension.js)
在開發(fā)一個(gè)系統(tǒng)的時(shí)候經(jīng)常會(huì)用到AJAX的驗(yàn)證,而如果每次都要編寫上面那么多的代碼還是很不方便,所以我現(xiàn)在就來進(jìn)行一下簡單的封裝,代碼如下:
view sourceprint?01 //遠(yuǎn)程驗(yàn)證抽象方法 function GetRemoteInfo(postUrl, data) { var remote = { type: "POST", async: false, url: postUrl, dataType: "xml", data: data, dataFilter: function(dataXML) { var result = new Object(); result.Result = jQuery(dataXML).find("Result").text(); result.Msg = jQuery(dataXML).find("Msg").text(); if (result.Result == "-1") { result.Result = false; return result; } else { result.Result = result.Result == "1" ? true : false; return result; } } }; return remote; }
這個(gè)函數(shù)主要接收2個(gè)參數(shù),一個(gè)是遠(yuǎn)程驗(yàn)證的路徑和需要提交的參數(shù),返回包裝好的remote對象。
頁面調(diào)用也很簡單,代碼如下:
view sourceprint?01 <script src="scripts/jquery.validate.extension.js" type="text/javascript"></script> <script type="text/javascript"> function InitRules() { var dataInfo = {uid:function(){ return jQuery("#<%=txtUid.ClientID %>").val();}}; var remoteInfo = GetRemoteInfo('WebService.asmx/CheckUid', dataInfo); opts = { rules: { <%=txtUid.UniqueID %>: { required: true, remote:remoteInfo } } } } </script>
怎么樣?相比上面的代碼一下子干凈了很多吧?
頁面上只要做3步操作:
1、包裝好需要提交的data對象。
2、將遠(yuǎn)程驗(yàn)證地址和包裝好的data對象傳遞給封裝好的方法獲取remote對象。
3、將函數(shù)返回的remote對象放入規(guī)則中。
至此使用jQuery.Validate進(jìn)行客戶端驗(yàn)證——不使用微軟驗(yàn)證控件的理由這一系列就算全部寫完了,大體上將jQuery.Validate在ASP.NET上的一些常見應(yīng)用講了一下,同時(shí)也提出了許多我自己修改擴(kuò)展的東西,希望對正在苦惱客戶端驗(yàn)證的朋友有所幫助,謝謝大家的支持了!
PS:1、其實(shí)這一系列并沒有把jQuery.Validate的所有功能介紹完,比如onfocusin,onfocusout,onkeyup等,這些就需要大家在使用的過程中自己查看源代碼實(shí)驗(yàn)了。
2、本文有點(diǎn)長,而且內(nèi)容比較多,如果文中有什么錯(cuò)誤或者有指導(dǎo)意見歡迎大家提出來,謝謝了!
轉(zhuǎn)載:http://www.cnblogs.com/kyo-yo/archive/2010/07/06/Use-jQuery-Validate-To-Being-Client-Validate-High-2.html
本文鏈接:http://m.95time.cn/tech/web/2010/7792.asp
出處:博客園
責(zé)任編輯:bluehearts
上一頁 使用jQuery.Validate進(jìn)行客戶端驗(yàn)證(后篇) 下 [4] 下一頁
◎進(jìn)入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。
|