DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> jQuery入門知識 >> JQuery特效代碼 >> formValidator3.3的ajaxValidator一些異常分析
formValidator3.3的ajaxValidator一些異常分析
編輯:JQuery特效代碼     
ajaxvalidator是大家問的最多的問題,修正一個bug(感謝網友“じ龍峸√”),並把大家最關心的問題,再做一次闡述。
bug現象:無論校驗有沒有校驗通過,當控件再次得到焦點而再次失去焦點的時候tip裡的提示就會停滯在得到焦點的提示
歷次升級的相關記錄:
a、為AjaxValidator添加一個addidvalue屬性(是否自動添加id和值到url參數後面)
為了修復AjaxValidator在配置信息的時候,取不到運行時候值的bug,插件將自動在url後面自動添加,形式為"id=value"的網頁參數。
在服務器端,你可以通過Request.querystring["id"]來取值。 具體演示請看demo1裡的用戶名輸入和Default.aspx
異常說明:
開發過程中仍會出現亂碼問題
例如:
代碼如下:
$("#thename").formValidator({onfocus:"用戶名至少6個字符,最多40個字符",oncorrect:"輸入格式正確"}).inputValidator({min:6,max:40,onerror:"你輸入的用戶名非法,請確認"})//.regexValidator({regexp:"username",datatype:"enum",onerror:"用戶名格式不正確"})
.ajaxValidator({
type : "get",
url : "login.do",
data:"action=isExist",
datatype : "xml",
success : function(data){
root = data.documentElement;
var rowSet = root.selectNodes("//delete");
if( rowSet.item(0).selectSingleNode("value").text == "0" )
{
return true;
}
else
{
return false;
}
},
buttons: $("#saveId"),
error: function(){alert("服務器沒有返回數據,可能服務器忙,請重試");},
onerror : "該用戶名不可用,請更換用戶名",
onwait : "正在對用戶名進行合法性校驗,請稍候..."//function(){alert($("#pcode").val());}
});

說明:
data:"action=isExist&thename="+$('#thename').val(),這種方式是失效的,因為$('#thename').val()是固定不變的,而且是初始值,通常為空.
修改源碼:
formValidator.js
//ajax校驗
ajaxValid : function(returnObj)的方法中

var parm = "clientid="+id+"&"+id+"="+encodeURIComponent(srcjo.val());
改為:
var parm = "clientid="+id+"&"+id+"="+encodeURIComponent(encodeURIComponent(srcjo.val()));
因為只有通過前台兩次編碼,後台一次解碼就可以解決亂碼問題
thename=java.net.URLDecoder.decode(thename,"UTF-8");
注意前台必須編碼兩次,否則會仍是亂碼.
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved