27

現在、シリアライズを使用するすべての場所で、次のように使用する必要があります。

.serialize().replace(/\+/g,'%20');

そうしないと、フォーム データ内のすべてのスペースが + に変換されます。これをデフォルトにできる設定はありますか。

4

3 に答える 3

4

楽しみのために、一時変数を使用しない代替案を次に示します。

$.fn.serializeAndEncode = function() {
    return $.map(this.serializeArray(), function(val) {
        return [val.name, encodeURIComponent(val.value)].join('=');
    }).join('&');
};

$("#formToSerialize").serializeAndEncode();
于 2015-04-28T14:25:56.970 に答える
-1

デフォルトがあるとは思わないでください。これらの方法のいずれかで文字列をエンコードする必要があります。

独自のプラグインを作成することもできますが:

jQuery.fn.serializeAndEncode = function() {
    return escape(this.serialize());
}

$(myForm).serializeAndEncode();
于 2012-06-14T01:50:19.157 に答える