JQuery的Validation插件中Remote驗證的中文問題
更新時間:2010年07月26日 12:40:05 作者:
前段時間,再次出現(xiàn)AJAX中文編碼問題,導(dǎo)致會員名重復(fù)檢測失敗,不過這次出現(xiàn)問題的是Validation插件的remote驗證。
根據(jù)上次的經(jīng)驗,我將
加入到ajax請求的參數(shù)中,結(jié)果這次居然不起作用了。
多次觀察Fiddler結(jié)果,發(fā)現(xiàn)無效后,只好打開JQuery.Validation.js尋求答案了。
在remote的代碼中,我發(fā)現(xiàn):
...
var data = {};
data[element.name] = value;
$.ajax($.extend(true, {
url: param,
mode: "abort",
port: "validate" + element.name,
dataType: "json",
data: data,
....
原來插件自己定義了提交的數(shù)據(jù),直接將要驗證的數(shù)據(jù)以json格式傳給服務(wù)器了。難怪針對form的編碼定義無效。馬上將value進行強制的編碼encodeURIComponent(value),果然就好了!
后記:
這種方法在服務(wù)器代碼處理的時候,必須顯式地解碼數(shù)據(jù),通用性很差。于是,之后還是回到起點來研究更好的方法。
為了防止Validation插件對輸入數(shù)據(jù)的處理,我試著采用自己的Option來覆蓋Validation的Option定義:
remote: {
url: "ajax.aspx?a=xxx",
type: "post",
dataType: "json",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: { txt1: function() { return $("#txt1").val(); } }
}
然后在服務(wù)器端代碼中,取得Form數(shù)據(jù)中的對應(yīng)數(shù)據(jù),這樣就避免了對Validation的修改,同時也滿足了我的要求。
原文鏈接: http://www.luyuliang.com/post/chinese-issue-in-jquery-validation-plugin.aspx
復(fù)制代碼 代碼如下:
contentType: "application/x-www-form-urlencoded; charset=utf-8",
加入到ajax請求的參數(shù)中,結(jié)果這次居然不起作用了。
多次觀察Fiddler結(jié)果,發(fā)現(xiàn)無效后,只好打開JQuery.Validation.js尋求答案了。
在remote的代碼中,我發(fā)現(xiàn):
復(fù)制代碼 代碼如下:
...
var data = {};
data[element.name] = value;
$.ajax($.extend(true, {
url: param,
mode: "abort",
port: "validate" + element.name,
dataType: "json",
data: data,
....
原來插件自己定義了提交的數(shù)據(jù),直接將要驗證的數(shù)據(jù)以json格式傳給服務(wù)器了。難怪針對form的編碼定義無效。馬上將value進行強制的編碼encodeURIComponent(value),果然就好了!
后記:
這種方法在服務(wù)器代碼處理的時候,必須顯式地解碼數(shù)據(jù),通用性很差。于是,之后還是回到起點來研究更好的方法。
為了防止Validation插件對輸入數(shù)據(jù)的處理,我試著采用自己的Option來覆蓋Validation的Option定義:
復(fù)制代碼 代碼如下:
remote: {
url: "ajax.aspx?a=xxx",
type: "post",
dataType: "json",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: { txt1: function() { return $("#txt1").val(); } }
}
然后在服務(wù)器端代碼中,取得Form數(shù)據(jù)中的對應(yīng)數(shù)據(jù),這樣就避免了對Validation的修改,同時也滿足了我的要求。
原文鏈接: http://www.luyuliang.com/post/chinese-issue-in-jquery-validation-plugin.aspx
您可能感興趣的文章:
- Jquery validation remote 驗證的緩存問題解決方法
- ASP.NET中實現(xiàn)jQuery Validation-Engine的Ajax驗證
- ASP.NET中實現(xiàn)jQuery Validation-Engine的Ajax驗證實現(xiàn)代碼
- 修改jQuery Validation里默認的驗證方法
- ASP.NET jQuery 實例12 通過使用jQuery validation插件簡單實現(xiàn)用戶注冊頁面驗證功能
- ASP.NET jQuery 實例11 通過使用jQuery validation插件簡單實現(xiàn)用戶登錄頁面驗證功能
- asp.net Page.EnableEventValidation 屬性驗證服務(wù)器控件的回發(fā)和回調(diào)事件出現(xiàn)的錯誤
- jQuery Validation實例代碼 讓驗證變得如此容易
- jQuery插件學(xué)習(xí)教程之SlidesJs輪播+Validation驗證
相關(guān)文章
Jquery Validation插件防止重復(fù)提交表單的解決方法
在項目開發(fā)中,測試人員報告缺陷說,即時有表單驗證,但是如果快速點擊兩下“提交”按鈕,系統(tǒng)會產(chǎn)生兩條相同的記錄。2010-03-03
關(guān)于setInterval、setTimeout在jQuery中的使用注意事項
最近碰到個問題,在使用jquery寫定時器時,總是會出現(xiàn)fn不存在的錯誤提示2011-09-09
IE8下jQuery改變png圖片透明度時出現(xiàn)的黑邊
這些天在做一個效果,鼠標(biāo)經(jīng)過,PNG圖片由透明變成不透明, 但是會出現(xiàn)黑邊,晚上查了好多辦法,分別對IE8設(shè)置過濾器啊等等,都不見效果。最終在熱心網(wǎng)友的幫助下解決了問題,下面我們就來分析下2015-08-08

