How to add or remove inputs dynamically in jQuery?

How to add or remove inputs dynamically in jQuery?

Hello Coders.

This article will give you a complete guide on How to add or remove inputs dynamically in jQuery. I'm going to write a simple code in this post to add or remove inputs dynamically with jQuery. 

Step 1: Add jQuery and Bootstrap CDNs

First of all, we need to add jQuery to create add or remove inputs functionality. Bootstrap is not necessary to add, I have added Bootstrap to make a quick and simple form design. You can write your custom CSS for styling.

Here are the CDN links of jQuery and Bootstrap5:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.6.1.min.js" integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ=" crossorigin="anonymous"></script>

Step 2: Create a Simple Form

Let's create a quick HTML form, we will add just one input field for now. We will add more input fields dynamically in the next step. 

...
<div class="container py-5">
    <form method="post" action="">
        <div class="row">
            <div class="col-lg-12">
                <div id="formInputs">
                    <div class="form-group mb-3">
                        <label for="">Name</label>
                        <div class="input-group mb-3">
                            <input type="text" class="form-control" placeholder="Name">
                            <button class="btn btn-outline-danger removeRow" type="button">Remove</button>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <button class="btn btn-primary submit-btn align-self-end" id="addMore">Add More</button>
    </form>
</div>
...

Step 3: Add inputs dynamically using jQuery

We have created a simple HTML form with only one input, now we will add more inputs dynamically using jQuery. So, let's write a few lines of code in jQuery. 

<script>
    $("#addMore").on('click',function(e){
        e.preventDefault();
        const html = `<div class="form-group mb-3">
                        <label for="">Name</label>
                        <div class="input-group mb-3">
                            <input type="text" class="form-control" placeholder="Name">
                            <button class="btn btn-outline-danger removeRow" type="button">Remove</button>
                        </div>
                    </div>`;
        $("#formInputs").append(html);
    })
    $(document).on('click','.removeRow', function(e){
        e.preventDefault();
        $(this).parents('.form-group').remove();
    });
</script>

Full code

Here is the final code to add inputs dynamically using jQuery. 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css">
</head>
<body>
    
    <div class="container py-5">
        <form method="post" enctype="multipart/form-data" autocomplete="off" action="">
            <div class="row">
                <div class="col-lg-12">
                    <div id="formInputs">
                        <div class="form-group mb-3">
                            <label for="">Name</label>
                            <div class="input-group mb-3">
                                <input type="text" class="form-control" placeholder="Name">
                                <button class="btn btn-outline-danger removeRow" type="button">Remove</button>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <button class="btn btn-primary submit-btn align-self-end" id="addMore">Add More</button>
        </form>
    </div>

    <script src="https://code.jquery.com/jquery-3.6.1.min.js" integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ=" crossorigin="anonymous"></script>
    <script>
        $("#addMore").on('click',function(e){
            e.preventDefault();
            const html = `<div class="form-group mb-3">
                            <label for="">Name</label>
                            <div class="input-group mb-3">
                                <input type="text" class="form-control" placeholder="Name">
                                <button class="btn btn-outline-danger removeRow" type="button">Remove</button>
                            </div>
                        </div>`;
            $("#formInputs").append(html);
        })
        $(document).on('click','.removeRow', function(e){
            e.preventDefault();
            $(this).parents('.form-group').remove();
        });
    </script>
</body>
</html>

Conclusion:

We have added jQuery and Bootstrap CDN links to start our working then we have created a simple HTML form using bootstrap styling. Bootstrap is not compulsory to add you can use your custom CSS code to style your form. We have added a few lines of jQuery code to handle adding and removing behavior of the inputs dynamically. You can use JavaScript ES6 also instead of jQuery.

I hope it will help you. 

Happy Coding :)

Leave a Comment

Your email address will not be published. Required fields are marked *

Go To Top
×