2012-12-31 18 views
16

我正在使用ckeditor,並希望序列化textarea數據以及所有其他元素。這可能嗎?我可以將數據添加到已經序列化的陣列嗎?

如果可能,我想追加taData到vals。

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

非常感謝Felix,我的朋友也一樣! – NaN

相關問題