2010-09-30 8 views
5

¿Cómo serializo las entradas de formulario dinámicas?Cómo utilizar la función .serialize de jQuery con elementos de formulario dinámicos

<table id="mytable"> 
<form id="myform"> 
<tbody> 
    <tr><td><input type="text" name="row0"></td></tr> <!-- dynamically generated --> 
    <tr><td><input type="text" name="row1"></td></tr> <!-- dynamically generated --> 
    <tr><td><input type="text" name="row2"></td></tr> <!-- dynamically generated --> 
    <tr><td><input type="text" name="row3"></td></tr> <!-- dynamically generated --> 
</tbody> 
<tfoot> 
    <tr><td><input type="button" id="save" value="SAVE"></td></tr> <!-- static --> 
</tfoot> 
</form> 
</table> 

Quiero usar jQuery para cargar información de php

$('#save').click(function(){ 
    $.ajax({ 
    type: "POST", 
    url: "post.php", 
    data: $('#myform').serialize(), 
    success: function(msg){ 
     console.log(msg); 
    } 
    }); 
}); 

Esto funcionaría ningún problema si las filas no se generan de forma dinámica, pero no puedo encontrar la manera de acceder o serializar el contenido dinámico

Respuesta

11

números de serie a contenidos dinámicos trabaja muy bien la forma en que lo tienes (ya lo está haciendo en un manejador de click, no en carga) ... pero hay que tener un elemento válido <form> envuelto alrededor de la <table>, así:

<form id="myform"> 
<table id="mytable"> 
<tbody> 
    <tr><td><input type="text" name="row0"></td></tr> <!-- dynamically generated --> 
    <tr><td><input type="text" name="row1"></td></tr> <!-- dynamically generated --> 
    <tr><td><input type="text" name="row2"></td></tr> <!-- dynamically generated --> 
    <tr><td><input type="text" name="row3"></td></tr> <!-- dynamically generated --> 
</tbody> 
<tfoot> 
    <tr><td><input type="button" id="save" value="SAVE"></td></tr> <!-- static --> 
</tfoot> 
</table> 
</form> 

You can test it out here.

+0

Lo estaba recogiendo cuando no se generó dinámicamente. Me pregunto por qué tiene problemas cuando es dinámico. – polyhedron

+1

Eso lo arregló sin embargo. – polyhedron

+0

@polyhedron: con el marcado no válido, las cosas no se pueden predecir ... es posible que haya colocado el formulario de forma diferente en el DOM con los elementos que tenía antes. –

Cuestiones relacionadas