現在、シリアライズを使用するすべての場所で、次のように使用する必要があります。
.serialize().replace(/\+/g,'%20');
そうしないと、フォーム データ内のすべてのスペースが + に変換されます。これをデフォルトにできる設定はありますか。
現在、シリアライズを使用するすべての場所で、次のように使用する必要があります。
.serialize().replace(/\+/g,'%20');
そうしないと、フォーム データ内のすべてのスペースが + に変換されます。これをデフォルトにできる設定はありますか。
楽しみのために、一時変数を使用しない代替案を次に示します。
$.fn.serializeAndEncode = function() {
return $.map(this.serializeArray(), function(val) {
return [val.name, encodeURIComponent(val.value)].join('=');
}).join('&');
};
$("#formToSerialize").serializeAndEncode();
デフォルトがあるとは思わないでください。これらの方法のいずれかで文字列をエンコードする必要があります。
独自のプラグインを作成することもできますが:
jQuery.fn.serializeAndEncode = function() {
return escape(this.serialize());
}
$(myForm).serializeAndEncode();