2012-12-31 9 views
16

Używam programu ckeditor i chciałbym szeregować dane textarea wraz z wszystkimi innymi elementami. czy to możliwe?Czy mogę dodać dane do już serializowanej tablicy?

Chciałbym dołączyć taData do vals, jeśli to możliwe.

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

Cóż ... '.serialize' zwraca ciąg znaków. Zawsze możesz zmodyfikować ciąg znaków, jeśli chcesz to wiedzieć. Ale może jesteś bardziej interesujący w '.serializeArray()': http://api.jquery.com/serializeArray/. –

+0

Dzięki Felix. Czy możesz mi pokazać, jak to zrobić? Jestem analfabetką JQ. – NaN

+0

Cóż, serializować główne motto było uzyskanie wartości z całego formularza i uczynić go ciągiem! na przykład ? name = user & password = heart –

Odpowiedz

30

.serialize zwraca ciąg znaków, więc zawsze można zmodyfikować ciąg, ale nie polecam tego, manipulacja łańcuch może się bałagan.

Zamiast tego należy użyć .serializeArray[docs], aby utworzyć reprezentację tablic danych, a następnie dodać do niej dane. Każdy element tablicy jest obiekt z właściwością name i value:

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

Wszystkie metody jQuery Ajax będzie zrozumieć tę strukturę i dane serializacji prawidłowo. W przypadku, gdy chcesz utworzyć ciąg odcinkach (podobnie jak .serialize), można przekazać tablicę do $.param[docs]:

var query_string = $.param(vals); 
+0

Dziękuję, mój przyjacielu! Tego właśnie szukałem. :) – NaN

+0

Nie ma za co :) Wszystkiego najlepszego na rok 2013! –

+0

Dziękuję Felix, ty sam, mój przyjacielu! – NaN

Powiązane problemy