私はckeditorを使用しており、他のすべての要素と一緒にテキストエリアのデータをシリアル化したいと考えています。これは可能ですか?すでにシリアル化された配列にデータを追加できますか?
可能であれば、valにtaDataを追加したいと思います。
var vals = $("#post").find('input,select').serialize();
var taData = CKEDITOR.instances.ta1.getData();
私はckeditorを使用しており、他のすべての要素と一緒にテキストエリアのデータをシリアル化したいと考えています。これは可能ですか?すでにシリアル化された配列にデータを追加できますか?
可能であれば、valにtaDataを追加したいと思います。
var vals = $("#post").find('input,select').serialize();
var taData = CKEDITOR.instances.ta1.getData();
.serialize
文字列を返しますので、あなたは常に文字列を変更することができますが、私は、文字列操作が厄介取得することができ、このことをお勧めしません。
代わりに、.serializeArray
[docs]を使用してデータの配列表現を作成し、それにデータを追加します。配列の各要素はname
とvalue
プロパティを持つオブジェクトです:
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);
うーん... '文字列を返します.serialize'。もしあなたが知りたいことがあれば、文字列をいつでも変更することができます。しかし、おそらくあなたは '.serializeArray()'の方が面白いでしょう:http://api.jquery.com/serializeArray/。 –
フェリックスに感謝します。それをどうやって行うか教えてもらえますか?私はJQ文盲です。 – NaN
よく、主なモットーをシリアル化するとフォーム全体から値を取得して文字列にすることでした!例えば?name = user&password = heart –