2012-12-31 14 views
16

私はckeditorを使用しており、他のすべての要素と一緒にテキストエリアのデータをシリアル化したいと考えています。これは可能ですか?すでにシリアル化された配列にデータを追加できますか?

可能であれば、valにtaDataを追加したいと思います。

var vals = $("#post").find('input,select').serialize(); 
var taData = CKEDITOR.instances.ta1.getData(); 
+1

うーん... '文字列を返します.serialize'。もしあなたが知りたいことがあれば、文字列をいつでも変更することができます。しかし、おそらくあなたは '.serializeArray()'の方が面白いでしょう:http://api.jquery.com/serializeArray/。 –

+0

フェリックスに感謝します。それをどうやって行うか教えてもらえますか?私はJQ文盲です。 – NaN

+0

よく、主なモットーをシリアル化するとフォーム全体から値を取得して文字列にすることでした!例えば?name = user&password = heart –

答えて

30

.serialize文字列を返しますので、あなたは常に文字列を変更することができますが、私は、文字列操作が厄介取得することができ、このことをお勧めしません。

代わりに、.serializeArray[docs]を使用してデータの配列表現を作成し、それにデータを追加します。配列の各要素はnamevalueプロパティを持つオブジェクトです:

var vals = $("#post").find('input,select').serializeArray(); 
vals.push({name: 'nameOfTextarea', value: CKEDITOR.instances.ta1.getData()}); 

すべてのjQueryのAjaxメソッドは、この構造を理解し、適切にデータをシリアル化します。あなたが(ちょうど.serializeのような)シリアル化された文字列を作成したい場合は、あなたが$.param[docs]に配列を渡すことができます。

var query_string = $.param(vals); 
+0

ありがとう、私の友人!これは私が探していたものでした。 :) – NaN

+0

あなたは大歓迎です:) 2013年のすべてのベスト! –

+0

フェリックスありがとう、私の友達と同じ! – NaN

関連する問題