unserialize serialize inputs form data jquery serializearray

inputs - serializearray jquery php



¿Cómo accedo a los valores creados por serializeArray en JQuery? (8)

Con uderscore.js , así es como podemos hacerlo:

var serializedArray = $(''form#spiderman-application'').serializeArray(); var serializedObject = _.object( _.pluck(serializedArray, ''name''), _.pluck(serializedArray, ''value'') ) console.log(serializedObject);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script> <form id="spiderman-application"> <legend>Application Form</legend> <input name="./fname" value="Peter" /> <input name="./lname" value="Parker" /> </form>

Buena suerte...

Tengo este HTML:

<form id=''myform''> <input name=''title'' value=''foo''/> </form>

Y creo una matriz de objetos de esta manera:

var dataArray = $("#myform").serializeArray();

Ahora, ¿cómo accedo al ''título'' en dataArray? Esto no funciona:

alert(dataArray[''title'']); alert(dataArray[''title''].val());


Añadiendo esto de todos modos para ayudar a otros en el futuro. Buena manera de inspeccionar rápidamente todos los valores.

var formdata = $( "#myform" ).serializeArray(); var formdata = JSON.stringify(formdata); alert (formdata);


Alertas de serializeArray de entradas en myDiv (nota: ¡el selector de :input incluirá también etiquetas de selección y área de texto!):

//alert(fData.length) // how many inputs got picked up var fData=$("#myDiv :input").serializeArray(); var msg=""; for(var i=0;i<fData.length;i++){ var raKy=Object.keys(fData[i]); msg+="/n"+raKy[0]+":"+eval("fData[i]."+raKy[0])+" "+raKy[1]+":"+eval("fData[i]."+raKy[1]); } alert(msg);


Ejecutar console.log(dataArray); , luego abra el inspector de propiedades y verifique la consola. En Chrome, debe hacer clic derecho y seleccionar "Inspeccionar elemento" y luego hacer clic en el ícono "> =" en la parte inferior izquierda, es el segundo desde la izquierda.

En Firefox deberías instalar Firebug y hay una pestaña llamada "Consola"

No estoy seguro de si está disponible en IE, probablemente algo en las herramientas de desarrollo (presione f12 ) pero no recomendaría desarrollar en IE.

De todos modos, esto mostrará el objeto de una manera que le permita navegar y ver los valores de cada elemento. De esa manera, puedes usar esto para descifrar cómo acceder a los valores :)

Buena suerte


Puede hacer un bucle, como @Tom tiene ... o si está accediendo a más de uno, sea un poco más eficiente y realice un bucle una vez, creando un objeto como este:

var dataArray = $("#myform").serializeArray(), len = dataArray.length, dataObj = {}; for (i=0; i<len; i++) { dataObj[dataArray[i].name] = dataArray[i].value; }

Luego puedes acceder a él como quieras, por ejemplo:

alert(dataObj[''title'']); //or alert(dataObj.title);

Puedes probarlo aquí .


Similar a lo que Nick publicó, pero un poco más limpio.

var dataArray = $("#myform").serializeArray(), dataObj = {}; $(dataArray).each(function(i, field){ dataObj[field.name] = field.value; });

Entonces accede de la misma manera

alert(dataObj[''title'']);


añadir / echo / print dataArray[0].name a un div te dará ''título''


alert(dataArray[0].name); alert(dataArray[0].value);

Asi que:

for (i=0; i<dataArray.length; i += 1) { if (dataArray[i].name === "title") { // do something here... } }