10Jun 2009 61 Comments */?>

Añadir campos a un formulario dinámicamente con JQuery

Categorías: JQuery, Tutoriales - Tags: ,

formulario_dinamico

En uno de mis ultimos proyectos tuve la necesidad de crear un formulario donde el cliente pudiera añadir campos de texto a medida que lo fuera necesitando, y a su vez quitarlos si ya no le eran necesarios.

Esto se puede realizar de una forma muy sencilla con JQuery. Suponiendo que tenemos el siguiente código HTML

<div id="stylized" class="myform" style="margin:20px auto;">
<form id="form" name="form" method="post" action="index.php">
 
<div id="material_comprado"  > </div>  
 
<h1>Compra de material</h1>
<p>Si es necesario a&ntilde;ade el material a comprar</p>
<div id="div_1">
<label>Material de compra
<span class="small">A&ntilde;ade los materiales</span>
</label>
 
    <input  type="text"  name="materiales[]" id="materiales1" style="width:200px;" /> <span style="float:left;padding: 8px 0px 8px 8px;">Cantidad:</span> <input type="text"   name="cantidadmateriales[]"  style="width:40px;" /><input class="bt_plus" id="1" type="button" value="+" /><div class="error_form"></div>
</div>
 
 
 
 
<button type="submit" class="boton">Save</button>
<div class="spacer"></div>
</form>
</div>

Con este código y añadiendole un poco de estilo tendriamos un pequeño formulario como el que muestra la imagen.

Ahora solo queda añadir unas cuantas lineas de JQuery para que funciones:

$(document).ready(function() {
	//ACA le asigno el evento click a cada boton de la clase bt_plus y llamo a la funcion addField
		$(".bt_plus").each(function (el){
			$(this).bind("click",addField);
									 });
							});
 
 
function addField(){
// ID del elemento div quitandole la palabra "div_" de delante. Pasi asi poder aumentar el número. Esta parte no es necesaria pero yo la utilizaba ya que cada campo de mi formulario tenia un autosuggest , así que dejo como seria por si a alguien le hace falta.
 
var clickID = parseInt($(this).parent('div').attr('id').replace('div_',''));
 
// Genero el nuevo numero id
var newID = (clickID+1);
 
// Creo un clon del elemento div que contiene los campos de texto
$newClone = $('#div_'+clickID).clone(true);
 
//Le asigno el nuevo numero id
$newClone.attr("id",'div_'+newID);
 
//Asigno nuevo id al primer campo input dentro del div y le borro cualquier valor que tenga asi no copia lo ultimo que hayas escrito.(igual que antes no es necesario tener un id)
$newClone.children("input").eq(0).attr("id",'materiales'+newID).val('');
 
//Borro el valor del segundo campo input(este caso es el campo de cantidad)
$newClone.children("input").eq(1).val('');
 
//Asigno nuevo id al boton
$newClone.children("input").eq(2).attr("id",newID)
 
//Inserto el div clonado y modificado despues del div original
$newClone.insertAfter($('#div_'+clickID));
 
//Cambio el signo "+" por el signo "-" y le quito el evento addfield
$("#"+clickID).val('-').unbind("click",addField);
 
//Ahora le asigno el evento delRow para que borre la fial en caso de hacer click
$("#"+clickID).bind("click",delRow);					
 
}
 
 
function delRow() {
// Funcion que destruye el elemento actual una vez echo el click
$(this).parent('div').remove();
 
}

Como siempre debemos añadir la ultima version de JQuery y luego nuestro script.

<script type="text/javascript" src="jquery-latest.js"></script>
<script type="text/javascript" src="jquery.addfield.js"></script>

Este mismo ejemplo se puede aplicar en cualquier otro lado, solo es cuestion de jugar un poco. Espero que les haya gustado. Saludoss

Ejemplo Online
Descargar Ejemplo

Damián Logghe

Programador freelancer y emprendedor en sueños. Contento de ser mi jefe y poder hacer lo que me gusta. WordPress es mi principal fuente de ingreso y me escribo tanto para ayudar como para tener una guia de memoria. Quieres contratarme? Déjame un mensaje.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle Plus

  • muy buena explicación,

    Gracias por la info.

  • gracias,me ha servido

  • para q tiene q ver esto

    eq(1) no se entiende bien

  • Carlos

    Hola!!!

    Me gusta mucho tu ejemplo y lo pienso utilizar para un software de manejo de inventario.

    Conozco de php pero apenas me inicio en Javascript y más concretamente en Jquery.

    Me gustaría saber qué plugin de autosuggest que mencionas utilizaste.

    Gracias de antemano.

  • http://masquewordpress.com/recursos/240-plugins-par

    Ahi podes encontrar unos cuantos plugins, tan solo tenes que elegir el que mejor se adapte a tus necesidades.

  • Hola.

    andaba buscando hace tiempo algo como esto pero tengo una duda que no se si es que ando espeso o que se me escapa algo.

    ¿y como recupero los datos generados para insertarlos en mysql?

    • En este ejemplo seria recorriendo el array materiales[]

      while($i=0; $i < count($materiales); $i++){
      mysql_query("INSERT INTO BLABLA (dato) VALUES ('$materiales[$i]')");

      }

      Saludos!!

      • Eric Alberto

        disculpa como seria para php yo hago esto pero nomas me guarda un registro los demas que agrego no, podrias ayudarme porfavor
        <?php
        include("php/conexion.php");

        if (isset($_POST['clave'])) {
        $clave = $_POST['clave'];
        }else{
        $clave="";
        }
        … etc.

        for($i=0; $i

  • Muchas gracias. voy a probarlo ahora mismo

  • con el while me daba un error de sintaxis en la primera linea. asi que puse un for ( que ni idea de que es por cierto ), total la cosa quedo asi:

    for ($i=0; $i < count($materiales); $i++){

    mysql_query("INSERT INTO BLABLA (dato) VALUES ('$materiales[$i]')");

    }

    y por lo menos dos lineas que inserte me las metió en la base de datos.

    Muchas gracias nuevamente. Por cierto puedo usar tu código para la versión publica de Factusyn?

    • No hay problema, usalo. Un mención a la web en el código fuente tampoco me molestaria 😀
      El código era for y no while, lo que pasa que era muy tarde y ni mire lo que puse. Gracias por comentarlo. Un saludo

    • nicolas

      damian o nacho les pido su ayuda ya qe usando ese codigo para recuperar los datos me da error "Undefined variable" en la misma linea del for.. me podria alguno copiar su codigo para ver como funciona ya qe no lo logro hacer.. desde ya muchas gracias.

  • Hola otra vez.

    ando liado insertado el script y adaptandolo a las necesidades de factusyn pero mis conocimientos de javascritp y jquery son muy limitados. si te incordio mucho simplemente ignora este comentario o no lo publiques y lo entenderé. Mira lo que necesito son varias cosas:

    1- uso jquery.autocomplete y al insertar una segunda linea deja de funcionar autocomplete

    2- me gustaría insertar un td en vez de texto en una capa

    3- al insertar una linea calcula los totales de esa linea y en la segunda tampoco me calcula nada.

    si quieres verlo en vivo esta aquí:
    http://www.factusyn.es/Scripts/Archivos/Demos/Fac
    en facturas de venta al insertar una factura nueva ( usuario: Demo

    password: demo

  • Nacho, solo podes tener un id único.

    sumalinea($('#cantidad').val(), $('#precio').val(), $('#dcto').val());return false;

    Deberias modificar los id de dichos campos tb para que no se repitan.

  • no tendras algo de código utilizando el script para mirar como hacer mas cosas?

    si quieres te pongo mejor en los créditos ya que esto me supone muchísimo trabajo simplificado. dime que quieres que ponga y lo pongo.

    • Mi código es exactamente el que está en el ejemplo con la unica diferencia de que le añado un evento de autosuggest a cada nuevo campo que creo.
      //adding autosugges property
      var options = {
      script: "get_materiales.php?limit=6&",
      varname: "materiales",
      json:false,
      maxresults:10,
      timeout:9999999,
      noresults:'Ingresar nuevo material a la base de datos'
      };
      var as3 = new bsn.AutoSuggest('materiales'+newID, options);

      }
      Como podes ver uso 'materiales'+newID para asi nunca repetir los ids y no crear errores.
      Para ver el ejemplo funcionando podes ver mi programa

      Saludoss

  • Nada que soy inutil perdio.

    te apetece colaborar en factusyn? y das tu el soporte y hosting a america?

    • Te agradezco nacho, pero actualmente no tengo tiempo. Saludos y suerte en tu proyecto!

  • Hola otra vez. perdona que soy muy pesado y tienes que estar hasta las narices de mi ya.

    te importaria pasarme una copia del get_materiales.php ( cambiando las consultas reales claro. que al final como no me veo capaz de usar mi autocomplete me pase al tuyo que ademas es ma bonico s. y estoy intentando mostrar resultados pero no pasa nada

  • Enrique

    hola, disculpa la molestia, cómo puedo hacer para leer los elementos creados desde javascript, es decir, quiero un javascript con el que pueda lanzar un alert por ejemplo, para poder validar los datos.

    De antemano gracias

    • Los elementos se leer de la misma forma que si fueran creador en PHP. alert($('#idDelElemento').val()); Saludos

  • Hola damian.

    ya tengo funcionando todo excepto el calculo del total sobre la segunda linea.

    me podrías echar una manica?

    http://www.factusyn.es/Scripts/Archivos/Demos/Fac

    ya se que me vas a decir que le tengo que dar un id a los subtotales en jquery.addfield.js pero es que no tengo ni idea de donde meter ese id.

    los calculos los meto usando una funcion:

    function calculo(cantidad,precio,inputtext,totaltext){

    /* Parametros:

    cantidad – entero con la cantidad

    precio – entero con el precio

    inputtotal – nombre del elemento del formulario donde ira el total

    */

    //restamos lo que habia en ese input por si cambiamos parametros

    gndtotal= totaltext.value-inputtext.value;

    // Calculo del subtotal

    subtotal = precio*cantidad;

    inputtext.value=subtotal;

    //Calculo del total

    total = eval(gndtotal);

    totaltext.value = total + subtotal;

    }

    y llamo a esa función mediante un onkeyup en un imput:

    input type="texto" name="cantidad[]" id="cantidad1" value="1" style="width:40px;" onkeyup="calculo(this.value,precio1.value,subtotal1,total);"/

    si quieres ver el jquery.addfield.js que uso esta aquí:

    http://www.factusyn.es/Scripts/Archivos/Demos/Fac

    al final me voy a hacer un experto en jquery con la tonteria XD ( empiezo a entender el código poco a poco ).

    en serio muchisimas gracias por tu ayuda pasada, presente y futura estoy aprendiendo un monton

  • JAIR

    Hola me parece muy bueno tu explicacion, cambie el campo texto por un menu desplegable que lee los materiales desde una base de datos pero al momento de querer agregar dos articulos mas ya no se puede eliminarlos primeros es decir en lugar de poner el signo – pone el + cual es la razon.

    De antemano muchas gracias.

  • vale creo que ya lo tengo. necesito cambiar los parámetros del onkeyup. estoy probando algo así

    $newClone.children("input").eq(1).attr("id",'materiales'+newID).val('').attr("onblur",'calculo(cantidad2.value,precio2.value,subtotal2,total)');

    pero me da que la sintaxis no esta bien o algo esta fallando por que no me cambia los valores.

    en principio estoy poniendo un 2 a la fuerza pero realmente tendría que usar el +newID.

    donde puedo encontrar un manual de esto??

    • Para no complicarse tanto en sus proyectos, y tener que programar todo ustedes pueden usar algun plugin que realize lo que busquen. Hay uno muy bueno llamado JQuery dynamic form que permite clonar selectes, textarea, etc

      Y además incluye varias opciones.

  • y fin. aquí pongo el código usado por si alguien lo necesita, con esto nos elimina el onblur que ya existía por si las moscas y mete uno nuevo

    $newClone.children("input").eq(1).removeAttr("onblur").attr({"id":'materiales'+newID,"onBlur":"calculo(cantidad2.value,precio2.value,subtotal2,total);"}).val('');

    $newClone.children("input").eq(2).attr({"id":'cantidad'+newID,"onKeyUp":"calculo(this.value,precio2.value,subtotal2,total);"}).val('1');

    Putas mayúsculas 20 horas perdidas mirando por medio mundo distintos millones de códigos y solo estaba fallando que no ponía mayúsculas en onBlur y en onKeyUp. menudo churro de documentación que tiene jquery.

    Bueno con esto ya me despido que a damian lo tengo frito.

    por cierto damian respecto a tu ultimo comentario. si solo usamos plugin de jquery genéricos aparte de saturar la web con tonterías innecesarias no aprendemos nada.

    jair seguramente tienes que cambiar el eq(1) por otro

    //asigno un nuevo id al boton de eliminar

    $newClone.children("input").eq(6).attr("id",newID)

    el eq dichoso dice la posición donde esta el botón o el input si cambiaste el input por un select seguramente tendrás que restar un numero, en mi caso el boton – esta en la 6ª posición con lo que cambio el numero por un 6, en tu caso supongo que sera un 1 si tienes un select y un imput si te equivocas en el numero en la primera linea creo que si sale el eliminar pero en el resto solo salen + ( también me volví loco con ese tema al insertar mas inputs, no se si será así realmente pero es la deducción a la que llegue después de tanto tocar y tocar el código )

  • JAIR

    Hola gracias por tu aportacion me fue de gran ayuda

    Saludos.

  • Como están? tengo dos problemas:

    1º como meter los datos en un mysql, esto de

    while($i=0; $i < count($materiales); $i++){

    mysql_query("INSERT INTO BLABLA (dato) VALUES ('$materiales[$i]')");

    }

    no me funciona, tampoco el for…, yo uso php, cual sería la sentencia?

    2º es (el link de prueba de nacho ya no anda) como logro colocar un campo que vaya sumando lo que vamos introduciendo (subtotal, por así decirlo).

    Será que alguien puede ayudarme con esto? Muchas gracias desde ya.

    • el nuevo link es este: http://www.factusyn.es/Scripts/Archivos/Demos/Fac

      yo los datos los inserto asi:

      //recupero las variables del array pistas y las inserto en la db
      for ($i=0;$i<count($mantitulo);$i++){
      $consulta = "INSERT INTO pistas (`format` , `referenci` , `track` , `titulo`, `artista` , `duracion` , `genero` , `pista`) VALUES ('$formato' , '$referencia' , '$i' , '$mantitulo[$i]' , '$manartista[$i]' , '$mandura[$i]' , '$gener[$i]' , '$manpista[$i]')";
      $resultado = mysql_query($consulta, $conexion);
      }

      • Jose

        Nacho, como recuperar las variables del array pistas ???

    • el php que uso para ese javascript es similar a este ( cambiando el nombre de las variables )
      <div id="div_1">
      <input type="text" name="mantitulo[]" style="width:40%;" />
      <input type="text" id="manartista" name="manartista[]" style="width:20%;" />
      <input type="text" name="mandura[]" style="width:10%;" />
      <input type="text" name="manpista[]" style="width:10%;" />
      <input class="bt_plus" id="1" style="width:5%;" type="button" value="+" />
      <div class="error_form"></div><?=$id ?>
      </div>

      • rodrigo

        Hola te hago una consulta, esto no te genera un error con el simbolo (-) ? muchas gracias.

      • Daniel Paredes

        Amigo que tal quize agregar mas campos pero el simbolo – siempre se queda en la segunda columna como puedo solucionar eso

  • Armando

    Gracias y que Dios te bendiga Daminan

  • Drakkar

    Gracias me ha sido de gran ayuda XD

    nota: agregue esto a la siguiente linea para alinear el bottom:

    antes:

    despues:

  • socople

    Tengo un problema cuando yo utilizo jquery autocomplite y me funciona pero cuando agrego la segunda fila ya no funciona talves alguien me puede ayudar

    • yo para autocompletar uso esto:

      //Ahora le asigno el evento delRow para que borre la fial en caso de hacer click
      $("#"+clickID).bind("click",delRow);

      $("#descri"+newID).autocomplete("../Scripts/phps/consultas/articulos.php", {
      width: 260,
      selectFirst: true
      });

      $("#descri"+newID).result(function(event, data, formatted) {
      if (data)
      $(this).parent().next().find("#codar"+newID).val(data[1]);
      $(this).parent().next().find("#descripcion"+newID).val(data[0]);
      $(this).parent().next().find("#cantidad"+newID).val(data[2]);
      $(this).parent().next().find("#precio"+newID).val(data[3]);
      $(this).parent().next().find("#iva"+newID).val(data[4]);
      });

      $("#clear"+newID).click(function() {
      $(":input"+newID).unautocomplete();
      });

      //añado linea de autocompletar
      var options = {
      script: "../test/autosuggest/get_materiales.php?limit=6&",
      varname: "articulos",
      json:false,
      maxresults:10,
      timeout:9999999,
      noresults:'Ingresar nuevo material a la base de datos'
      };
      var as = new bsn.AutoSuggest('descri'+newID, options);

      }

      function delRow() {

      si quieres ver el js completo lo tienes aqui http://www.factusyn.es/Scripts/Archivos/Demos/Fac

  • Disculpa me podrian ayudar porque recien estoy empezando en Jquery y al momento de autocompletar solo me autocompleta la primera linea, y aumento una segunda linea y no me autocompleta.

    no se si me podrian dar una mano, o me podrian pasar el script que utilizas para autocompletar, cualquier sugerencia sera totalmente agradecida en el sistema que estoy realizando.

    [email protected]
    por favor

  • nicolas

    hola muy bueno.. estuve probando tu codigo y lo pude modificar muy bien el problema qe no puedo solucionar es al momento de subir los datos a mysql me da error.. podrias adjuntar el codigo php qe usas para subir a mysql?. se qe se usa un bucle ya sea un while o un for pero no puedo dar con la tecla.. desde ya muchas gracias.. seguire mirando tus aportes.

  • Ronald

    Muy buen pequeño tutorial, busque mucho y este mi sirvio gracias.

  • MIGUEL

    POR FAVOR ALGUIEN POR LA SANTA MADRE ME PUEDE AYUDAR CON EL AUTOCOMPLETE DE EL JQUERY,EN LA SEGUNDA LINEA YA NO ME COMPLETA,CREO QUE ES POR UNA CUESTION DE ID,NACHO O AL DUEÑO DEL TUTORIAL,POR VAOR APOYENME!

  • alexjimy

    alguien sabe como cambiar el input del material de compra por un boton de seleccion ????

    • catodi

      alexjimy la cuestión es simple, sustituyes el input por un select y en jquery.addfield.js cambias el eq, que no es mas que la posición del elemento. ej.

      //Borro el valor del segundo campo input(este caso es el campo de cantidad)
      $newClone.children("input").eq(0).val('');

      //Asigno nuevo id al boton
      $newClone.children("input").eq(1).attr("id",newID)

  • catodi

    Al parecer a todos nos sucede lo mismo, he cambiado el elemento input por un select y solo puedo eliminar la primera linea, luego el botón solo añade. Alguien sabe la solución? Gracias de antemano.

  • Alex

    Muy buen post, pero tengo una pregunta, no se si sea facil o dificil de responder, pero lo q trato es q en lugar de que sea un input text para la cantidad, q este sea un input checkbox sin chequear.

    Al principio pongo un input text y un input checkbox sin chequear, si hago clic en + me lo agrega perfectamente. Pero si al mismo input checkbox lo chequeo, al seguir agregando un nuevo checkbox me lo hace, pero ya chequeado. Osea quiero q siempre al agregar me lo hago con un checkbox sin chequear sin importar si los anteriores estan o no chequeados

    con chequeado quiero decir seleccionado

    Gracias

  • Falquez

    Saludos.
    Muy buen ejemplo… yo necesitaba no un input text si no un select multiple con optgroup y el jquery.addfield.js quedo de esta manera:

    $(document).ready(function() {
        //ACA le asigno el evento click a cada boton de la clase bt_plus y llamo a la funcion addField
            $(“.bt_plus”).each(function (e){
                $(this).bind(“click”,addField);
                                         });
                                });

    function addField(){
    // ID del elemento div quitandole la palabra “div_” de delante. Pasi asi poder aumentar el número. Esta parte no es necesaria pero yo la utilizaba ya que cada campo de mi formulario tenia un autosuggest , así que dejo como seria por si a alguien le hace falta.

    var clickID = parseInt($(this).parent(‘div’).attr(‘id’).replace(‘div_’,”));

    // Genero el nuevo numero id
    var newID = (clickID+1);

    // Creo un clon del elemento div que contiene los campos de texto
    $newClone = $(‘#div_’+clickID).clone(true);

    //Le asigno el nuevo numero id
    $newClone.attr(“id”,’div_’+newID);

    $newClone.children(“#dormitorios option::selected”).remove();
    $newClone.children(“#dormitorios”).attr(“name”,”dormitorios”+ newID +””);

    //Borro el valor del segundo campo input(este caso es el campo de cantidad) y lo identifico secuencialmente
    $newClone.children(“input”).eq(0).val(”);
    $newClone.children(“#cantdorm”).attr(“name”,”cantdorm”+ newID +””);
    //Asigno nuevo id al boton
    $newClone.children(“input”).eq(1).attr(“id”,newID)

    //Inserto el div clonado y modificado despues del div original
    $newClone.insertAfter($(‘#div_’+clickID));

    //Cambio el signo “+” por el signo “-” y le quito el evento addfield
    $(“#”+clickID).val(‘-‘).unbind(“click”,addField);

    //Ahora le asigno el evento delRow para que borre la fial en caso de hacer click
    $(“#”+clickID).bind(“click”,delRow);                    
                           
    }

    function delRow() {
    // Funcion que destruye el elemento actual una vez echo el click
    $(this).parent(‘div’).remove();

    }

    ################################

    Realiza el trabajo correctamente, eso creo yo dentro de mi insipientes conocimientos de java or jquery o php… los select se agregan y si se desea se eliminan correctamente.  El punto es que a la hora de enviar la info a procesar para extraer los valores de cada select creado dinamicamente… plaffff…. la falla solo se obtienen los valores del select padre… de los hijos…. esos hijos de p…. jajajaja se mandaron a cambiar… no aparecen por ningun lado.  Podría alguno de ustedes, tener la bondad, desasnarme… no doy pie con bola…. estoy perdido… he buscado por todos lados y no logro encontrar un caso parecido.  Desde ya muy agradecido por sus respuestas y mis congratulaciones a Damian por ver un poco más alla de lo evidente.

  • Torke2010

    hola amigo, genial tu Tutorial  no encuentro o no se como buscar para que com en la imagen, de como una sugerencia. que no afecte lso valores que debes ingresar..
    gracias

  • Hola, genial el tutorial. justo lo que necesitamos, tenemos una consulta; es posible insertar este codigo para que funcione en wordpress?? 
    podemos pagar por la ayuda.  dejanos saber si puedes ayudarnos. un cordial saludo.

  • juan castro

    muy bueno, te agradesco por compartir, quisiera que me ayudes, tengo un problema:

    cuando elimino inputs que no voy a usar

    se queda con el id anterior

     
      

    Como haria para que cuando quite inputs que no voy a usar me reinicie el nombre del input junto con su id

    saludos

  • Jorge Cein Villanueva Guzmán

    Y como almaceno todos esos valores en una base de datos??? Te pregunto porque tu ejemplo resuelve para de una duda que tengo, de almacenar varios registros en una Base de datos.

  • Tambien me gustaria saber sobre ingresar estos registros a una base de datos.

  • Viri

    Gracias por el aporte…

    estaba buscando como agregar todo un formulario dentro de otro al dar click en un boton de agregar campos… y esto me ayudo… 

  • Ranglesmx

    si resuelve el punto de cargar nuevos input pero no guarda el registro en la base de datos y al pasarlos como cadena no reconoce el valor

  • dankkochicho

    Hola, si necesito implementar dos a la vez, como podría modificarlos para que al hacer aumentar uno de ellos, no aumente el otro?

  • Fernando Alvarez Conejeros

    Amigo, tengo este formulario, pero al momento de agregar otro registro me dejas los primeros 4 campos con el dato anterior y no en blanco: adjunto codigo del formulario por si me puedes ayudar:

    Fecha

    Solicitud

    Fecha

    Entrega

    <input name="fecha" type="text" size="7" value="” >

     

    (mm/dd/aaaa)

    Nombre

    obra

    Rol

    Camino

    Km.

    DETALLE

    Máq./Camión/Equipo

    Patente

    Litros

    Operador/Chofer

    Trabajo a realizar

    Ubicación

    Enviar

  • jose

    Hola como puedo recorrer los input para insertarlos en la db

  • rodrigo

    Hola muy bueno el tutorial, te hago una consulta como puedo capturar la cadena de vectores en php?
    probe con $materiales = $_POST[‘materiales’];
    pero no funciona. Gracias por todo.
    saludos.

  • Anderson Jaramillo

    Hola Damian, Escribo para preguntarte, como puedo enviar esta informacion a mi correo electronico. Gracias.

  • Eric Alberto

    una duda si quiero agregar mas capos de texto tendria que agregarlos input por input o se puede en el mismo input? y si se puede en el mismo input como seria la codificacion?