简体   繁体   中英

jQuery: Adding html elements dynamically using jquery

I want to add some html elements dynamically using jQuery inside a form tag but it is not working .

 $(document).ready(function() { var requirements = 0; var container = $(document.createElement('div').addClass('form-group')); $('#add-req').click(function() { if (requirements <= 15) { requirements = requirements + 1; $(container).append('<input type="text" name="name" class="form-control" placeholder="Requirement" title="Enter next requirement" required="">'); $('#requirement-div').after(container); } }); }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="register-form pt-md-4" id="requirement-div"> <form action="#" method="post"> <div class="styled-input form-group"> <input type="text" class="form-control" placeholder="Your Name" name="Course name" required=""> </div> <div class="styled-input"> <div class="form-group"> <input type="text" name="name" class="form-control" placeholder="Requirement" title="Please enter requirement" required=""> </div> <input type="button" value="add Requirements" id="add-req"> <input type="submit" value="Submit"> </div> </form> </div> 

when I click add requirement button it should create another div tag and input element inside form element.

Just replace the code $(document.createElement('div').addClass('form-group')); to $(document.createElement('div')).addClass('form-group') ;

Try the following

We can directly Insert a html element to the targer Element as follow

 $(document).ready(function(){ var requirements=0; $('#add-req').click(function(){ if(requirements<=15){ requirements=requirements+1; $('#requirement-div').after('<div class="form-group"><input type="text" name="name" class="form-control" placeholder="Requirement" title="Enter next requirement" required=""></div>'); } }); }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="register-form pt-md-4" id="requirement-div"> <form action="#" method="post" > <div class="styled-input form-group"> <input type="text" class="form-control" placeholder="Your Name" name="Course name" required=""> </div> <div class="styled-input"> <div class="form-group"> <input type="text" name="name" class="form-control" placeholder="Requirement" title="Please enter requirement" required=""> </div> <input type="button" value="add Requirements" id="add-req"> <input type="submit" value="Submit"> </div> </form> </div> 

you mixing between JS and JQuery, where document.createElemet('div') is a JS function while addClass is a JQuery function.

 $(document).ready(function(){ var requirements = 0; var container=$('<div>').addClass('form-group'); $('#add-req').click(function(){ if(requirements<=15){ requirements=requirements+1; container.append('<input type="text" name="name" class="form-control" placeholder="Requirement" title="Enter next requirement" required="">'); $(this).before(container); } }); }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="register-form pt-md-4" id="requirement-div"> <form action="#" method="post" > <div class="styled-input form-group"> <input type="text" class="form-control" placeholder="Your Name" name="Course name" required=""> </div> <div class="styled-input"> <div class="form-group"> <input type="text" name="name" class="form-control" placeholder="Requirement" title="Please enter requirement" required=""> </div> <input type="button" value="add Requirements" id="add-req"> <input type="submit" value="Submit"> </div> </form> </div> 

Replace the Below Code

<script>
    $(document).ready(function(){
        var requirements=0;
        var container=$(document.createElement('div')).addClass('form-group');

        $('#add-req').click(function(){
            if(requirements<=15){
                requirements=requirements+1;
                $(container).append('<input type="text" name="name" class="form-control" placeholder="Requirement" title="Enter next requirement" required="">');
                $('#requirement-div').after(container);
            }
        });

    });
</script>

I wrote a script here (Adding html elements dynamically using jquery) that you can test

    <form action="#" method="post">
        <div class="form-group">
          <input type="text" class="form-control test" placeholder="Your Name" name="Course name" required="">
        </div>
        <div class="form-group">
          <input type="text" name="name" class="form-control" placeholder="Requirement" title="Please enter requirement" required="">
        </div>
        <div class="styled-input">
            <input type="button" class="btn btn-primary" value="Add Requirements" id="add-req">
            <input type="submit" class="btn btn-primary" value="Submit">
        </div>
    </form>

JQuery Code $(function() { var requirements=0;

    $('#add-req').click(function(e){
      e.preventDefault();
      $('.test').val('Okay');
      if(requirements <= 15) {
        $('.styled-input').prepend('<div class="form-group"><input type="text" name="name" class="form-control" placeholder="Requirement" title="Enter next requirement" required=""></div>');
        requirements++;
      } else {
        alert('Max requirement has been reached');
      }
    });
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM