"Multi Step Form New - Working"
Bootstrap 3.0.0 Snippet by VishwanathKD

<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script> <script src="//code.jquery.com/jquery-1.11.1.min.js"></script> <!------ Include the above in your HEAD tag ----------> <div class="container"> <div class="row form-group"> <div class="col-xs-12"> <ul class="nav nav-pills nav-justified thumbnail setup-panel"> <li class="active"><a href="#step-1"> <h4 class="list-group-item-heading">Step 1</h4> <p class="list-group-item-text">First step description</p> </a></li> <li class="disabled"><a href="#step-2"> <h4 class="list-group-item-heading">Step 2</h4> <p class="list-group-item-text">Second step description</p> </a></li> <li class="disabled"><a href="#step-3"> <h4 class="list-group-item-heading">Step 3</h4> <p class="list-group-item-text">Third step description</p> </a></li> <li class="disabled"><a href="#step-4"> <h4 class="list-group-item-heading">Step 4</h4> <p class="list-group-item-text">Second step description</p> </a></li> </ul> </div> </div> </div> <form class="container"> <div class="row setup-content" id="step-1"> <div class="col-xs-12"> <div class="col-md-12 well text-center"> <h1> STEP 1</h1> <!-- <form> --> <div class="container col-xs-12"> <div class="row clearfix"> <div class="col-md-12 column"> <table class="table table-bordered table-hover" id="tab_logic"> <thead> <tr > <th class="text-center"> # </th> <th class="text-center"> Name </th> <th class="text-center"> Surname </th> <th class="text-center"> Email </th> <th class="text-center"> Gender </th> </tr> </thead> <tbody> <tr id='addr0'> <td> 1 </td> <td> <input type="text" name='name0' placeholder='Name' class="form-control"/> </td> <td> <input type="text" name='sur0' placeholder='Surname' class="form-control"/> </td> <td> <input type="text" name='email0' placeholder='Email' class="form-control"/> </td> <td> <select type="text" name="gender0" class="form-control"> <option name="male" value="male">Male</option> <option name="Female" value="Female">Female</option> <option name="3rdgen" value="none">None</option> </select> </td> </tr> <tr id='addr1'></tr> </tbody> </table> </div> </div> <a id="add_row" class="btn btn-success pull-left">Add Row</a><a id='delete_row' class="btn btn-danger pull-right">Delete Row</a> </div> <!-- </form> --> <button id="activate-step-2" class="btn btn-primary btn-md">Activate Step 2</button> </div> </div> </div> </form> <form class="container"> <div class="row setup-content" id="step-2"> <div class="col-xs-12"> <div class="col-md-12 well text-center"> <h1 class="text-center"> STEP 2</h1> <!--<form></form> --> <button id="activate-step-3" class="btn btn-primary btn-md">Activate Step 3</button> </div> </div> </div> </form> <form class="container"> <div class="row setup-content" id="step-3"> <div class="col-xs-12"> <div class="col-md-12 well text-center"> <h1 class="text-center"> STEP 3</h1> <!--<form></form> --> <button id="activate-step-4" class="btn btn-primary btn-md">Activate Step 4</button> </div> </div> </div> </form> <form class="container"> <div class="row setup-content" id="step-4"> <div class="col-xs-12"> <div class="col-md-12 well text-center"> <h1 class="text-center"> STEP 4</h1> <!--<form></form> --> </div> </div> </div> </form>
body{ margin-top:20px; }
// Activate Next Step $(document).ready(function() { var navListItems = $('ul.setup-panel li a'), allWells = $('.setup-content'); allWells.hide(); navListItems.click(function(e) { e.preventDefault(); var $target = $($(this).attr('href')), $item = $(this).closest('li'); if (!$item.hasClass('disabled')) { navListItems.closest('li').removeClass('active'); $item.addClass('active'); allWells.hide(); $target.show(); } }); $('ul.setup-panel li.active a').trigger('click'); // DEMO ONLY // $('#activate-step-2').on('click', function(e) { $('ul.setup-panel li:eq(1)').removeClass('disabled'); $('ul.setup-panel li a[href="#step-2"]').trigger('click'); $(this).remove(); }) $('#activate-step-3').on('click', function(e) { $('ul.setup-panel li:eq(2)').removeClass('disabled'); $('ul.setup-panel li a[href="#step-3"]').trigger('click'); $(this).remove(); }) $('#activate-step-4').on('click', function(e) { $('ul.setup-panel li:eq(3)').removeClass('disabled'); $('ul.setup-panel li a[href="#step-4"]').trigger('click'); $(this).remove(); }) $('#activate-step-3').on('click', function(e) { $('ul.setup-panel li:eq(2)').removeClass('disabled'); $('ul.setup-panel li a[href="#step-3"]').trigger('click'); $(this).remove(); }) }); // Add , Dlelete row dynamically $(document).ready(function(){ var i=1; $("#add_row").click(function(){ $('#addr'+i).html("<td>"+ (i+1) +"</td><td><input name='name"+i+"' type='text' placeholder='Name' class='form-control input-md' /> </td><td><input name='sur"+i+"' type='text' placeholder='Surname' class='form-control input-md'></td><td><input name='email"+i+"' type='text' placeholder='Email' class='form-control input-md'></td><td><select type='text' name='gender"+i+"' class='form-control'><option name='male"+i+"' value='male'>Male</option><option name='Female"+i+"' value='Female'>Female</option><option name='3rdgen"+i+"' value='none'>None</option></select></td>"); $('#tab_logic').append('<tr id="addr'+(i+1)+'"></tr>'); i++; }); $("#delete_row").click(function(){ if(i>1){ $("#addr"+(i-1)).html(''); i--; } }); });

Related: See More

Questions / Comments:

how to submit data in database in php because multiple form tag is used

aks university () - 6 years ago - Reply 0

Hi. Thanks. I have implemented this successfully. I had to make a change in the <select> for it to work. in the HTML, I had to remove the "name=xxx" from each of the the <option> list and then in the JS I had to change the name='Male"+i+ "'name='Female"+i+"' and name='3rdgen"+i+"' to name='gender"+i+". Then it sends the correct information to my php file'.

The only other thing I would like to do but can't work out is for the page to jump to a missing required field. Currently it just highlights it, but in other forms I have, the page jumps to the first input where the validation is missing.

One more tip - if you want a text field NOT to be validated (such as, in my case, Middle Name), change the type="text" to type="tel" as it seems to want to validate all text inputs

Joel Malach () - 7 years ago - Reply 0

if we need to validate form, if field is empty show msg please enter the text and not jump to another step.

Dilip paswan () - 7 years ago - Reply 0

Hello. What if i want not to remove buttons after click on Activate next step?
I tried remove $(this).remove(); , but after that the form crashed.
Do you have any solution? Thank you

Lukáš Staroň () - 7 years ago - Reply 0

Ok, i know the answer. For each button should be defined type="button", then you can remove all $(this).remove();.
It's based on default behavior of HTML5 buttons :)

Lukáš Staroň () - 7 years ago - Reply 0