2012-12-31 28 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

相关问题