Подтвердить что ты не робот

Могу ли я добавить данные в уже сериализованный массив?

Я использую ckeditor и хотел бы сериализовать данные textarea вместе со всеми другими элементами. Возможно ли это?

Я хотел бы добавить taData к vals, если это возможно.

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

Ответ 1

.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);