serialize
devuelve una cadena codificada en URL que contiene los campos del formulario. Si necesita agregarlo, hágalo utilizando las reglas estándar de cadenas codificadas en URL, por ejemplo:
var values = $("#frmblog").serialize();
values += "&content=" + encodeURIComponent(content_val);
(Lo anterior asume que siempre habrá un valor values
después de la serialize
llamada; si eso no es necesariamente cierto, determine si usar en &
función de si values
está vacío antes de agregarlo).
Alternativamente, si lo desea, puede usar serializeArray
y luego agregar a la matriz y usar jQuery.param
para convertir el resultado en una cadena de consulta, pero eso parece un largo camino:
var values = $("#frmblog").serializeArray();
values.push({
name: "content",
value: content_val
});
values = jQuery.param(values);
Actualización : en un comentario agregado más tarde, dijiste:
El problema es que se establecen algunos valores predeterminados en la clave 'contenido' durante el proceso de serilización, así que no puedo simplemente agregar un nuevo valor, tengo que actualizar el que ya está en él "
Eso cambia las cosas. Es difícil buscar content
dentro de la cadena codificada en URL, así que iría con la matriz:
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);
Probablemente desee que esta sea una función reutilizable.