serialize
zwraca ciąg zakodowany w adresie URL zawierający pola formularza. Jeśli chcesz dołączyć do niego, możesz to zrobić, korzystając ze standardowych reguł ciągów zakodowanych w adresie URL, np .:
var values = $("#frmblog").serialize();
values += "&content=" + encodeURIComponent(content_val);
(Powyższe zakłada, że values
po serialize
wywołaniu zawsze będzie jedna wartość ; jeśli to niekoniecznie jest prawdą, określ, czy użyć &
na podstawie tego, czy values
jest pusta, zanim do niej dodasz.)
Alternatywnie, jeśli chcesz, możesz użyć, serializeArray
a następnie dodać do tablicy i użyć jQuery.param
do przekształcenia wyniku w ciąg zapytania, ale wydaje się, że to długa droga:
var values = $("#frmblog").serializeArray();
values.push({
name: "content",
value: content_val
});
values = jQuery.param(values);
Aktualizacja : W komentarzu dodanym później powiedziałeś:
Problem polega na tym, że podczas procesu serilizacji w kluczu „content” ustawiane są wartości domyślne, więc nie mogę po prostu dołączyć nowej wartości, muszę zaktualizować tę, która już się w niej znajduje ”
To wszystko zmienia. Trudno jest szukać w content
ciągu zakodowanym w adresie URL, więc wybrałbym tablicę:
var values, index;
values = $("#frmblog").serializeArray();
for (index = 0; index < values.length; ++index) {
if (values[index].name == "content") {
values[index].value = content_val;
break;
}
}
if (index >= values.length) {
values.push({
name: "content",
value: content_val
});
}
values = jQuery.param(values);
Prawdopodobnie chciałbyś, aby ta funkcja była wielokrotnego użytku.