2012-06-14 7 views

答えて

0

デフォルトがあるとは思わないので、文字列をone of these waysにエンコードする必要があります。

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

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

$(myForm).serializeAndEncode(); 
+2

'エスケープを使用しないでください'。これは何年にもわたって非難されています(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions#escape_and_unescape_functions(Obsoleted_above_JavaScript_1.5)。これはinのように 'encodeURIComponent'に置き換えてくださいMatt Royの例。 – Husky

1

私は同じことをしなければなりませんでした。 テリーがエスケープ()で与えた解決策は機能しません。 =と&はエンコードされています(私たちはそれを望んでいません)+はまだそこにあります。私はシリアル化するために自分自身の関数を作成されたのは何

:楽しみのために

var QueryString = ""; 
$(selector).each(function(index) { 
    if(QueryString != "") QueryString += "&"; 
    QueryString += $(this).get(0).id + "=" + encodeURIComponent($(this).val()); 
}); 
3

は、ここでは、一時的な変数を使用しない代替です:

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

$("#formToSerialize").serializeAndEncode(); 
+0

これはまさに私が自分でやっていたことでした。 –