欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JQuery的Validation插件中Remote驗(yàn)證的中文問題

 更新時(shí)間:2010年07月26日 12:40:05   作者:  
前段時(shí)間,再次出現(xiàn)AJAX中文編碼問題,導(dǎo)致會(huì)員名重復(fù)檢測失敗,不過這次出現(xiàn)問題的是Validation插件的remote驗(yàn)證。
根據(jù)上次的經(jīng)驗(yàn),我將

復(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ù),直接將要驗(yàn)證的數(shù)據(jù)以json格式傳給服務(wù)器了。難怪針對form的編碼定義無效。馬上將value進(jìn)行強(qiáng)制的編碼encodeURIComponent(value),果然就好了!

后記:

這種方法在服務(wù)器代碼處理的時(shí)候,必須顯式地解碼數(shù)據(jù),通用性很差。于是,之后還是回到起點(diǎn)來研究更好的方法。

為了防止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的修改,同時(shí)也滿足了我的要求。
原文鏈接: http://www.luyuliang.com/post/chinese-issue-in-jquery-validation-plugin.aspx

相關(guān)文章

最新評論