我正在使用ckeditor,並希望序列化textarea數據以及所有其他元素。這可能嗎?我可以將數據添加到已經序列化的陣列嗎?
如果可能,我想追加taData到vals。
var vals = $("#post").find('input,select').serialize();
var taData = CKEDITOR.instances.ta1.getData();
我正在使用ckeditor,並希望序列化textarea數據以及所有其他元素。這可能嗎?我可以將數據添加到已經序列化的陣列嗎?
如果可能,我想追加taData到vals。
var vals = $("#post").find('input,select').serialize();
var taData = CKEDITOR.instances.ta1.getData();
.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);
嗯...'.serialize'返回一個字符串。你可以隨時修改字符串,如果這是你想知道的。但是''.serializeArray()'也許你更有趣:http://api.jquery.com/serializeArray/。 –
謝謝菲利克斯。你能告訴我怎麼做嗎?我是JQ文盲。 – NaN
好吧,序列化的主要格言是從整個表單中獲取值並使其成爲字符串!例如?name = user&password = heart –