formValidator3.3的ajaxValidator一些異常分析
更新時間:2011年07月12日 23:47:39 作者:
ajaxvalidator是大家問的最多的問題,修正一個bug(感謝網(wǎng)友“じ龍峸√”),并把大家最關(guān)心的問題,再做一次闡述。
ajaxvalidator是大家問的最多的問題,修正一個bug(感謝網(wǎng)友“じ龍峸√”),并把大家最關(guān)心的問題,再做一次闡述。
bug現(xiàn)象:無論校驗(yàn)有沒有校驗(yàn)通過,當(dāng)控件再次得到焦點(diǎn)而再次失去焦點(diǎn)的時候tip里的提示就會停滯在得到焦點(diǎn)的提示
歷次升級的相關(guān)記錄:
a、為AjaxValidator添加一個addidvalue屬性(是否自動添加id和值到url參數(shù)后面)
為了修復(fù)AjaxValidator在配置信息的時候,取不到運(yùn)行時候值的bug,插件將自動在url后面自動添加,形式為"id=value"的網(wǎng)頁參數(shù)。
在服務(wù)器端,你可以通過Request.querystring["id"]來取值。 具體演示請看demo1里的用戶名輸入和Default.aspx
異常說明:
開發(fā)過程中仍會出現(xiàn)亂碼問題
例如:
$("#thename").formValidator({onfocus:"用戶名至少6個字符,最多40個字符",oncorrect:"輸入格式正確"}).inputValidator({min:6,max:40,onerror:"你輸入的用戶名非法,請確認(rèn)"})//.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("http://delete");
if( rowSet.item(0).selectSingleNode("value").text == "0" )
{
return true;
}
else
{
return false;
}
},
buttons: $("#saveId"),
error: function(){alert("服務(wù)器沒有返回?cái)?shù)據(jù),可能服務(wù)器忙,請重試");},
onerror : "該用戶名不可用,請更換用戶名",
onwait : "正在對用戶名進(jìn)行合法性校驗(yàn),請稍候..."http://function(){alert($("#pcode").val());}
});
說明:
data:"action=isExist&thename="+$('#thename').val(),這種方式是失效的,因?yàn)?('#thename').val()是固定不變的,而且是初始值,通常為空.
修改源碼:
formValidator.js
//ajax校驗(yàn)
ajaxValid : function(returnObj)的方法中
將
var parm = "clientid="+id+"&"+id+"="+encodeURIComponent(srcjo.val());
改為:
var parm = "clientid="+id+"&"+id+"="+encodeURIComponent(encodeURIComponent(srcjo.val()));
因?yàn)橹挥型ㄟ^前臺兩次編碼,后臺一次解碼就可以解決亂碼問題
thename=java.net.URLDecoder.decode(thename,"UTF-8");
注意前臺必須編碼兩次,否則會仍是亂碼.
bug現(xiàn)象:無論校驗(yàn)有沒有校驗(yàn)通過,當(dāng)控件再次得到焦點(diǎn)而再次失去焦點(diǎn)的時候tip里的提示就會停滯在得到焦點(diǎn)的提示
歷次升級的相關(guān)記錄:
a、為AjaxValidator添加一個addidvalue屬性(是否自動添加id和值到url參數(shù)后面)
為了修復(fù)AjaxValidator在配置信息的時候,取不到運(yùn)行時候值的bug,插件將自動在url后面自動添加,形式為"id=value"的網(wǎng)頁參數(shù)。
在服務(wù)器端,你可以通過Request.querystring["id"]來取值。 具體演示請看demo1里的用戶名輸入和Default.aspx
異常說明:
開發(fā)過程中仍會出現(xiàn)亂碼問題
例如:
復(fù)制代碼 代碼如下:
$("#thename").formValidator({onfocus:"用戶名至少6個字符,最多40個字符",oncorrect:"輸入格式正確"}).inputValidator({min:6,max:40,onerror:"你輸入的用戶名非法,請確認(rèn)"})//.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("http://delete");
if( rowSet.item(0).selectSingleNode("value").text == "0" )
{
return true;
}
else
{
return false;
}
},
buttons: $("#saveId"),
error: function(){alert("服務(wù)器沒有返回?cái)?shù)據(jù),可能服務(wù)器忙,請重試");},
onerror : "該用戶名不可用,請更換用戶名",
onwait : "正在對用戶名進(jìn)行合法性校驗(yàn),請稍候..."http://function(){alert($("#pcode").val());}
});
說明:
data:"action=isExist&thename="+$('#thename').val(),這種方式是失效的,因?yàn)?('#thename').val()是固定不變的,而且是初始值,通常為空.
修改源碼:
formValidator.js
//ajax校驗(yàn)
ajaxValid : function(returnObj)的方法中
將
var parm = "clientid="+id+"&"+id+"="+encodeURIComponent(srcjo.val());
改為:
var parm = "clientid="+id+"&"+id+"="+encodeURIComponent(encodeURIComponent(srcjo.val()));
因?yàn)橹挥型ㄟ^前臺兩次編碼,后臺一次解碼就可以解決亂碼問題
thename=java.net.URLDecoder.decode(thename,"UTF-8");
注意前臺必須編碼兩次,否則會仍是亂碼.
相關(guān)文章
jquery的trigger和triggerHandler的區(qū)別示例介紹
這篇文章主要介紹了jquery的trigger和triggerHandler的區(qū)別,需要的朋友可以參考下2014-04-04
jquery+CSS3實(shí)現(xiàn)淘寶移動網(wǎng)頁菜單效果
這篇文章主要介紹了jquery+CSS3實(shí)現(xiàn)淘寶移動網(wǎng)頁菜單效果,實(shí)例分析了jquery操作頁面樣式動態(tài)變換及熱區(qū)的選擇技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-08-08
詳解jQuery同步Ajax帶來的UI線程阻塞問題及解決辦法
本篇文章主要介紹了jQuery同步Ajax帶來的UI線程阻塞問題及解決辦法,具有一定的參考價值,有興趣的可以了解一下2017-08-08
jQuery源碼分析-03構(gòu)造jQuery對象-源碼結(jié)構(gòu)和核心函數(shù)
jQuery源碼分析-03構(gòu)造jQuery對象-源碼結(jié)構(gòu)和核心函數(shù),需要的朋友可以參考下。2011-11-11
jQuery數(shù)據(jù)檢索中根據(jù)關(guān)鍵字快速定位GridView指定行的實(shí)現(xiàn)方法
這篇文章主要介紹了jQuery數(shù)據(jù)檢索中根據(jù)關(guān)鍵字快速定位GridView指定行的實(shí)現(xiàn)方法,涉及jQuery結(jié)合asp.net操作頁面元素及樣式的相關(guān)技巧,需要的朋友可以參考下2016-06-06
基于CSS3和jQuery實(shí)現(xiàn)跟隨鼠標(biāo)方位的Hover特效
這篇文章主要介紹了基于CSS3和jQuery實(shí)現(xiàn)跟隨鼠標(biāo)方位的Hover特效的相關(guān)資料,需要的朋友可以參考下2016-07-07

