Agregar o quitar campos de formulario dinámicamente

Agregar o quitar campos de formulario. En este artículo vamos a mostrar un ejemplo de cómo agregar campos de formulario dinámicos usando jQuery con la opción agregar, borrar.

Esta modalidad es muy recomendada porque tiene varios beneficios y le da opción al usuario final la posibilidad de agregar más opciones si lo requiere y lo más importante sin refrescar la página.

Agregar o quitar campos de formulario dinámicamente con jQuery
Agregar o quitar campos de formulario dinámicamente con jQuery

Agregar o quitar campos de formulario dinámicamente con jQuery

A continuación, vamos a ver varios pasos que debemos de realizar para que este ejemplo funcione al 100%, veamos.

Primer paso: Incluir librerías jQuery y Bootstrap

Si vamos a usar jQuery es muy importante incluir su librería y en el caso del Framework Bootstrap es opcional, si deseamos podemos incluirlo porque nos brindara estilos CSS profesionales a nuestro proyecto. Por lo tanto, en este ejemplo voy a incluir Bootstrap 4 para hacer un diseño agradable.

Para optimizar los recursos del servidor incluiremos las CDN de jQuery & Bootstrap. veamos:

<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

Segundo paso: Crear un formulario HTML5

Si observan nuestro formulario posee clases en los DIV y campos de formulario porque son propios del framework Bootstrap. Sin embargo, en este ejemplo trabajaremos con un campo de texto (Input y Button).

Lo que haremos es que el campo de texto sea dinámico, es decir podamos agregar y/o eliminar de manera dinámica sin afectar el rendimiento del formulario o servidor web:

<form method="post" action="">
<div class="row">
<div class="col-lg-12">
<div id="inputFormRow">
<div class="input-group mb-3">
<input type="text" name="title[]" class="form-control m-input" placeholder="Ingrese titulo" autocomplete="off">
<div class="input-group-append"> 
<button id="removeRow" type="button" class="btn btn-danger">Borrar</button>
</div>
</div>
</div>

<div id="newRow"></div>
<button id="addRow" type="button" class="btn btn-info">Agregar</button>
</div>
</div>
</form>

Tercer paso: Agregar función para que el campo sea dinámico

Con el formulario ya creado, ahora nos falta hacer que sea dinámico y usaremos jQuery para tal objetivo. Sin embargo, nos apoyaremos de las funciones de jQuery como ser la función append() y remove() para generar y/o eliminar campos dinámicos. Veamos el código jQuery:

<script type="text/javascript">
// agregar registro
$("#addRow").click(function () {
var html = '';
html += '<div id="inputFormRow">';
html += '<div class="input-group mb-3">';
html += '<input type="text" name="title[]" class="form-control m-input" placeholder="Ingrese titulo" autocomplete="off">';
html += '<div class="input-group-append">';
html += '<button id="removeRow" type="button" class="btn btn-danger">Borrar</button>';
html += '</div>';
html += '</div>';

$('#newRow').append(html);
});

// borrar registro
$(document).on('click', '#removeRow', function () {
$(this).closest('#inputFormRow').remove();
});
</script>

Cuarto paso: El código completo

Si hemos realizado los 3 pasos anteriores ya nuestro script está terminado. Por lo tanto, les dejare el script completo para que puedan implementarlo en sus proyectos web. Aquí el script del código completo:

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Agregar o quitar campos de entrada dinámicamente mediante jQuery - BaulPHP</title>

<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
<div class="container" style="max-width: 800px;">

<div class="text-center" style="margin: 20px 0px 20px 0px;">
<a href="https://www.baulphp.com/" target="_blank">BaulPHP</a><br>
<span class="text-secondary">Agregar o quitar campos de formulario dinámicamente con jQuery</span>
</div>

<form method="post" action="">
<div class="row">
<div class="col-lg-12">
<div id="inputFormRow">
<div class="input-group mb-3">
<input type="text" name="title[]" class="form-control m-input" placeholder="Ingrese titulo" autocomplete="off">
<div class="input-group-append"> 
<button id="removeRow" type="button" class="btn btn-danger">Borrar</button>
</div>
</div>
</div>

<div id="newRow"></div>
<button id="addRow" type="button" class="btn btn-info">Agregar</button>
</div>
</div>
</form>
</div>

<script type="text/javascript">
// agregar registro
$("#addRow").click(function () {
var html = '';
html += '<div id="inputFormRow">';
html += '<div class="input-group mb-3">';
html += '<input type="text" name="title[]" class="form-control m-input" placeholder="Ingrese titulo" autocomplete="off">';
html += '<div class="input-group-append">';
html += '<button id="removeRow" type="button" class="btn btn-danger">Borrar</button>';
html += '</div>';
html += '</div>';

$('#newRow').append(html);
});

// borrar registro
$(document).on('click', '#removeRow', function () {
$(this).closest('#inputFormRow').remove();
});
</script>

</body>
</html>

Quinto paso: Ejecutar el script y ver la salida

Una vez que tenemos implementado todos los requisitos como ser los siguientes:

  • La declaración de librería jQuery y framework
  • Formulario HTML5
  • Declaración de funciones jQuery

Ya podemos ejecutar el archivo en un servidor de desarrollo (Localhost) o un servidor de producción (Internet). Además, una vez ejecutado el script, ya podemos ver el resultado final.

Les dejare un video para que puedan ver el ejemplo después de la ejecutar en el navegador web.

 

Conclusión

La implementación de este script es muy sencilla y su curva de aprendizaje es muy baja, si bien pueden usar otros lenguajes como Vue, node, también se puede usar jQuery para poder lograr este objetivo.

Hemos implementado 3 sencillo pasos que son base para el correcto funcionamiento del ejemplo.

Espero que esta breve explicación les ayude en sus proyectos web.

Me fascina la programación en diversos lenguajes y mas aún si son sistemas web o páginas web.

Entradas relacionadas

Integrar Bootstrap 3 Badge Colors

Integrar Bootstrap 3 Badge Colors

En este artículo vamos a integrar colores de fondo en la clase BADGE de Bootstrap 3. Integrar Bootstrap 3 Badge Colors. En el framework Bootstrap 3 por…

5 formar de validar checkbox

5 formar de validar checkbox

5 formar de validar checkbox. Aquí mostrare varias formas de validar checkbox usando jQuery y JavaScript, también usaremos funciones a nivel de formulario. Aquí debéis fijaros que…

Cómo mostrar ocultar DIV usando CHECKBOX

Cómo mostrar ocultar DIV usando CHECKBOX

Cómo mostrar ocultar DIV usando CHECKBOX?. Lo que haremos será trabajar en un div al hacer clic con el mouse usando jQuery, use el método toggle(). Por…

Enviar formulario usando checkbox

Enviar formulario usando checkbox

Enviar formulario usando checkbox. En este articulo veremos una forma de enviar un formulario HTML usando una casilla o varias casillas de verificación (checkbox). Por lo tanto,…

Limpiar Select2 jQuery

Limpiar Select2 jQuery: Ejemplo completo

Limpiar Select2 jQuery. En este articulo aprenderemos a restablecer para mostrar el marcador de posición select2. JQuery Select2 restablece y luego muestra el marcador de posición. Por…

Evitar duplicados al importar MySQL y PHP

Evitar duplicados al importar MySQL y PHP

Evitar duplicados al importar MySQL y PHP. La mayoría de sistemas web o de escritorio trabajan con importación de registros hacia la base de datos para optimizar…

Esta entrada tiene un comentario

  1. Esta muy bueno pero como haces para que se agregue el nro en title[] para que sea title[1] title[2] title[3] y asi sucesivamente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *