DYNAMIC FORMS USING BOOTSTRAP & jQUERY

SULE-BALOGUN OLANREWAJU
3 min readMar 10, 2019

--

Here you will learn how to generate and validate input fields dynamically ..

Introduction:

Bootstrap is a free and open-source front-end Web framework. It contains HTML and CSS-based design templates for typography, forms, buttons, navigation and other interface components, as well as optional JavaScript extensions. Unlike many earlier web frameworks, it concerns itself with front-end development only.

JQuery is a JavaScript library designed to simplify HTML Document Object Model (DOM) tree traversal and manipulation, as well as event handling, CSS animation, and Ajax. It is free, open-source software using the permissive MIT License. The purpose of jQuery is to make it much easier to use JavaScript on your website.

Resources:

The following resources were used in this tutorial.

i. Bootstrap Content Delivery Network

ii. jquery Content Delivery Network

Setup :

// Bootstrap css cdn<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">// jQuery cdn
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
//bootstrap.min cdn<script src= "https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous></script>// popper.js css
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>

Next is putting together the tags

<!DOCTYPE html><html><head><meta charset="utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>Dynamic forms with Bootstrap & Jquery</title><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"></head><body><nav class="navbar navbar-dark bg-dark">   <!-- Navbar content -->    <a class="navbar-brand text-white">DevLarry</a></nav><div class="container">    <div class="col-lg-12">        <div class="card text-center">            <div class="card-header">                <ul class="nav nav-tabs card-header-tabs">                    <li class="nav-item">                       <a class="nav-link active" href="#">Generate Forms</a>                    </li>               </ul>           </div>           <div class="card-body">              <h4 class="card-title">Quick Demo on how to make Dynamic Forms</h4>              <p class="card-text"></p>              <form action="" id="needs-validation" novalidate>                  <div class="form-row">                      <div class="form-group col-md-8">                        <input type="number" name="" class="input form-control" placeholder="Enter number of forms" required>                     </div>                    <div class="form-group col-md-4">                        <div class="text-center">                           <button class="btn btn-sm btn-primary generate" type="submit">Generate</button>                       </div>                    </div>              </form>           </div>        </div></div>       <div class="col-lg-12">          <div class="card text-center">               <div class="card-body">                   <div class="forms">                   </div>                </div>            </div>        </div> </div><script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script><script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script><script type="text/javascript">$(document).ready(function(){$('.card').css('margin-top', 30);$('.btn').click(function(e){e.preventDefault();let input = $('input').val();let temp_html = '';for(i = 0; i < input; i++){temp_html += '<div class="row"><div class="col-md-4"><div class="form-group"><label>Fullname</label><input type="text" name="fullname[]" class="form-control" placeholder="Fullname" required=""></div></div><div class="col-md-4"><div class="form-group"><label>Email Address</label><input type="email" name="email[]" class="form-control" placeholder="Email address" required=""></div></div><div class="col-md-4"><div class="form-group"><label>Mobile Number</label><input type="text" name="phone[]" class="form-control" placeholder="Phone number" required=""></div></div></div>';}$('.forms').append(temp_html);});});</script></body></html>
Sample jQuery code to generate dynamic input tagsE.g.
Code Snippet of the Html tags

User Interface Design

Dynamic Input fields generation

Conclusion

Generating dynamic input fields got easier with jquery and bootstrap. Hope this helps someone. Happy coding !!!

--

--

SULE-BALOGUN OLANREWAJU
SULE-BALOGUN OLANREWAJU

Written by SULE-BALOGUN OLANREWAJU

Experienced Software Engineer with a demonstrated history of working in the computer software industry. Skilled in HTML, CSS, JS, Vue, Angular, PHP, Laravel

No responses yet