我可以将数据添加到已经序列化的数组中吗?

NaN*_*NaN 18 jquery

我正在使用ckeditor,并希望将textarea数据与所有其他元素一起序列化.这可能吗?

如果可能的话,我想将taData附加到val.

var vals = $("#post").find('input,select').serialize();
var taData = CKEDITOR.instances.ta1.getData();
Run Code Online (Sandbox Code Playgroud)

Fel*_*ing 37

.serialize 返回一个字符串,所以你总是可以修改字符串,但我不建议这样做,字符串操作会变得混乱.

而是使用.serializeArray [docs]创建数据的数组表示,然后将数据添加到它.数组的每个元素都是一个带有namevalue属性的对象:

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

所有jQuery Ajax方法都将理解这种结构并正确地序列化数据.如果你想创建一个序列化的字符串(就像.serialize),你可以将数组传递给$.param [docs]:

var query_string = $.param(vals);
Run Code Online (Sandbox Code Playgroud)