DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> jQuery入門知識 >> JQuery特效代碼 >> JQuery的Validation插件中Remote驗證的中文問題
JQuery的Validation插件中Remote驗證的中文問題
編輯:JQuery特效代碼     
根據上次的經驗,我將

代碼如下:contentType: "application/x-www-form-urlencoded; charset=utf-8",
加入到ajax請求的參數中,結果這次居然不起作用了。

多次觀察Fiddler結果,發現無效後,只好打開JQuery.Validation.js尋求答案了。

在remote的代碼中,我發現:
代碼如下:
...
var data = {};
data[element.name] = value;
$.ajax($.extend(true, {
url: param,
mode: "abort",
port: "validate" + element.name,
dataType: "json",
data: data,
....

原來插件自己定義了提交的數據,直接將要驗證的數據以json格式傳給服務器了。難怪針對form的編碼定義無效。馬上將value進行強制的編碼encodeURIComponent(value),果然就好了!

後記:

這種方法在服務器代碼處理的時候,必須顯式地解碼數據,通用性很差。於是,之後還是回到起點來研究更好的方法。

為了防止Validation插件對輸入數據的處理,我試著采用自己的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(); } }
}

然後在服務器端代碼中,取得Form數據中的對應數據,這樣就避免了對Validation的修改,同時也滿足了我的要求。
原文鏈接: http://www.luyuliang.com/post/chinese-issue-in-jquery-validation-plugin.aspx
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved