前回の経験に基づいて、コード
を次のようにコピーします。 contentType: "application /x-www-form-urlencoded ; charset=utf-8", が ajax リクエストのパラメータに追加されましたが、今回は機能しませんでした。
Fiddler の結果を何度も観察して無効であることが判明した後、答えを見つけるために JQuery.Validation.js を開かなければなりませんでした。
リモート コードで次のものが見つかりました:
var data = {};
data[element.name] = 値;
$.ajax($.extend(true, {
url: param) 、
mode: "abort"、
port: "validate" element.name、
dataType: "json"、
data: データ、
....
プラグインは送信されたデータを定義し、検証対象のデータを json 形式でサーバーに直接送信していることがわかりました。フォームのエンコーディング定義が無効であり、値が強制的に encodeURIComponent(
追記:
このメソッドはサーバー コードで処理するときにデータを明示的にデコードする必要があり、汎用性が非常に低いため、に戻ります。 >
検証プラグインが入力データを処理しないようにするために、独自のオプションを使用して検証のオプション定義をオーバーライドしようとしました:
コードをコピーします
type: "post",
dataType : "json",
contentType: "application/x-www-form-urlencoded",
data: { txt1 : function() { return $("#txt1").val (); } }
}
次に、サーバー側のコードで、Form データ内の対応するデータを取得します。これにより、検証の変更が回避され、要件が満たされます。
元のリンク:
http://www.luyuliang.com/post/chinese-issue-in-jquery-validation-plugin.aspx