serialize
Gibt eine URL-codierte Zeichenfolge zurück, die die Formularfelder enthält. Wenn Sie daran anhängen müssen, verwenden Sie dazu die Standardregeln für URL-codierte Zeichenfolgen, z.
var values = $("#frmblog").serialize();
values += "&content=" + encodeURIComponent(content_val);
(Bei den obigen Angaben wird davon ausgegangen, dass values
nach dem serialize
Aufruf immer ein Wert vorhanden ist . Wenn dies nicht unbedingt zutrifft, bestimmen Sie &
anhand des Leerwerts, ob er verwendet werden values
soll, bevor Sie ihn hinzufügen.)
Wenn Sie möchten, können Sie alternativ serializeArray
das Array verwenden und dann hinzufügen und jQuery.param
das Ergebnis in eine Abfragezeichenfolge umwandeln. Dies scheint jedoch ein langer Weg zu sein:
var values = $("#frmblog").serializeArray();
values.push({
name: "content",
value: content_val
});
values = jQuery.param(values);
Update : In einem später hinzugefügten Kommentar sagten Sie:
Das Problem ist, dass während des Serilisierungsprozesses einige Standardwerte im 'Content'-Schlüssel festgelegt werden. Ich kann also nicht einfach einen neuen Wert anhängen, sondern muss den bereits darin enthaltenen aktualisieren. "
Das ändert die Dinge. Es ist schwierig, content
in der URL-codierten Zeichenfolge zu suchen , daher würde ich mich für das Array entscheiden:
var values, index;
// Get the parameters as an array
values = $("#frmblog").serializeArray();
// Find and replace `content` if there
for (index = 0; index < values.length; ++index) {
if (values[index].name == "content") {
values[index].value = content_val;
break;
}
}
// Add it if it wasn't there
if (index >= values.length) {
values.push({
name: "content",
value: content_val
});
}
// Convert to URL-encoded string
values = jQuery.param(values);
Sie möchten dies wahrscheinlich zu einer wiederverwendbaren Funktion machen.