Ответ 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);