Si recuperamos un form con .serializedArray() y queremos transformarlo en un Objeto podemos usar la siguiente función:
function objectifyForm(serializedForm) { var oForm = {}; for (var i = 0; i < serializedForm.length; i++){ oForm[serializedForm[i]['name']] = serializedForm[i]['value']; } return oForm; }
La llamaríamos:
var formSerialized = $('#formId').serializeArray(); var oForm = objectifyForm(formSerialized);
En oForm ya tendríamos el "form" en un objeto 🙂
O directamente podemos saltarnos el ".serializedArray()" con la siguiente función:
function formToObject(element){ var serializedForm = element.serializeArray(); var oForm = {}; for (var i = 0; i < serializedForm.length; i++){ oForm[serializedForm[i]['name']] = serializedForm[i]['value']; } return oForm; }
Llamándolo de la siguiente manera:
var oForm = formToObject($('#formId'));
Ejemplo.
Con un form tipo:
Nuestro JS podría ser algo:
$(function(){ $('#testForm').submit(function(e){ e.preventDefault(); var oForm = formToObject($('#testForm')); console.log(oForm); }) });
Con lo que la variable "oForm" sería (con datos rellenos...):
{nombre: "Kike", apellidos: "Beltrán"}