可以看到一共修改了3處地方:
1、判斷返回值,原來是直接判斷response,現在則是判斷response.Result,因為現在的response已經是一個包含消息及結果的對象了。
2、錯誤消息,原來的錯誤消息是直接獲取默認配置好的消息,我這邊是獲取response.Msg。
3、設置previous對象,將previous對象的消息和結果設置為AJAX返回的消息和結果,以供jQuery.Validate下面代碼的返回。
這樣jQuery.Validate的remote的方法就修改了,但是并沒有結束,原因是先前在AJAX提交參數的時候由于jQuery.Validate的驗證規(guī)則的緣故,提交的參數并不是以JSON的格式提交的而是以{uid:function()}這樣的方式,結果就導致了無法設置jQuery.AJAX的contentType:"application/json; charset=utf-8",如果設置了會出現以下錯誤:
這樣從webservice返回的AjaxClass對象就無法像以往的JSON方式直接操作了,所以我們只能換一種格式——XML,因為webservice默認返回的
數據是XML格式:
view sourceprint?1 <?xml version="1.0" encoding="utf-8" ?> - <AjaxClass xmlns:xsi="view sourceprint?01 remote:{ type: "POST", dataType:"json", async: false, url: "WebService.asmx/CheckUid", data: {uid:function(){ return jQuery("#<%=txtUid.ClientID %>").val();}}, 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; } } }
就是jQuery.Ajax方法dataFilter,可以在AJAX請求成功后將數據進行過濾處理,這里我就使用了jQuery方法把結果和消息從XML中獲取出來直接賦給一個對象,再將這個對象返回,交由ajaxsuccess使用。
這樣就算是完成了修改jQuery.Validate的remote方法,使得可以返回驗證結果及驗證消息,看下效果圖:
出處:博客園
責任編輯:bluehearts
上一頁 使用jQuery.Validate進行客戶端驗證(后篇) 下 [3] 下一頁 使用jQuery.Validate進行客戶端驗證(后篇) 下 [5]
◎進入論壇網頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。
|