简体   繁体   English

如何重复点击部分?

[英]How to repeat a section on click?

I have this fiddle https://jsfiddle.net/74mh06v9/ where I am stuck on how to repeat the form group? 我有这个小提琴https://jsfiddle.net/74mh06v9/ ,在这里我被困在如何重复表单组上?

This code I am using is as below; 我使用的代码如下:

$(function () {
        $(".repeat").on('click', function (e) {
        e.preventDefault();
        var $self = $(this);
        $self.before($self.prev('table').clone());
        });
    });

My HTML is 我的HTML是

     <div class="col-md-12" class="repeatable">          
        <h4>Invoice Details </h4>
<table>
    //various form groups here to repeat
</table>
    <button class="repeat">Add Another</button>

Firslty, there is no need of table(no rows and columns), and replace table to div and add a class frm to it, then make a clone and append it. 首先,不需要表(没有行和列),将table替换为div并向其添加一个类frm ,然后进行克隆并附加它。

 $(function() { $(".repeat").on('click', function(e) { var frm =$('.frm:first').clone(); frm.find('input').val(''); $('.frm:last').after(frm); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="col-md-12 repeatable"> <div class="frm"> <h4>Invoice Details </h4> <div class="col-sm-3"> <div class="form-group"> <label>Service User</label> <div class="input-group"> <input name="service_user" id="service_user" class="form-control" type="text"></div> </div> </div> <div class="col-sm-3"> <div class="form-group"> <label>Hours</label> <div class="input-group"> <input name="total_hours" id="total_hours" class="form-control" type="text"> </div> </div> </div> <div class="col-sm-3"> <div class="form-group"> <label>Rate</label> <div class="input-group"> <input name="rate" id="rate" class="form-control" type="text"> </div> </div> <div class="col-sm-3"> <div class="form-group"> <label>Sub Total</label> <div class="input-group"> <input name="invoice_amount" id="invoice_amount" class="form-control" type="text"> </div> </div> </div> </div> </div> <button class="repeat">Add Another</button> 

Slight changes to the answer above: 对上面的答案稍作更改:

<script>
    $(function () {
            $(".repeat").on('click', function (e) {
            e.preventDefault();
            var clonedForm = $(".frm").clone();
            clonedForm.appendTo("#table");
            frm.find('input').val('');
            });
        });
    </script>

     <div class="col-md-12" class="repeatable">        
    <table id  ="table">
     <div class="frm">
      <h4>Invoice Details </h4>
          <div class="col-sm-3">
          <div class="form-group">
            <label>Service User</label>

            <div class="input-group">
            <input name="service_user" id="service_user" class="form-control" type="text"></div>
            </div>
          </div>

          <div class="col-sm-3">
            <div class="form-group">
              <label>Hours</label>
              <div class="input-group">
                <input name="total_hours" id="total_hours" class="form-control" type="text">
              </div>
            </div>
          </div>

          <div class="col-sm-3">
            <div class="form-group">
              <label>Rate</label>
              <div class="input-group">
                <input name="rate" id="rate" class="form-control" type="text">
              </div>
            </div>


          <div class="col-sm-3">
            <div class="form-group">
              <label>Sub Total</label>
              <div class="input-group">
                <input name="invoice_amount" id="invoice_amount" class="form-control" type="text">
              </div>
            </div>
          </div>
        </div>
        </div>
    </table>
    <button class="repeat">Add Another</button>

First of all your html ws wrong inside table there should be td,tr etc but u placed div's i dont kno why. 首先,您的html ws表格内部错误,应该有td,tr等,但是您放置了div,我不知道为什么。 i hv corrected it its working now. 我已经纠正了它现在的工作。 HTML: HTML:

<div class="col-md-12" class="repeatable">
  <div class="base-group" style="display:none;">
    <h4>Invoice Details </h4>
    <div class="col-sm-3">
      <div class="form-group">
        <label>Service User</label>

        <div class="input-group">
        <input name="service_user" id="service_user" class="form-control" type="text"></div>
        </div>
      </div>

      <div class="col-sm-3">
        <div class="form-group">
          <label>Hours</label>
          <div class="input-group">
            <input name="total_hours" id="total_hours" class="form-control" type="text">
          </div>
        </div>
      </div>

      <div class="col-sm-3">
        <div class="form-group">
          <label>Rate</label>
          <div class="input-group">
            <input name="rate" id="rate" class="form-control" type="text">
          </div>
        </div>


      <div class="col-sm-3">
        <div class="form-group">
          <label>Sub Total</label>
          <div class="input-group">
            <input name="invoice_amount" id="invoice_amount" class="form-control" type="text">
          </div>
        </div>
      </div>
    </div>



</div>

   <div id="main-form">

   <div class="child-group">
    <h4>Invoice Details </h4>
    <div class="col-sm-3">
      <div class="form-group">
        <label>Service User</label>

        <div class="input-group">
        <input name="service_user" id="service_user" class="form-control" type="text"></div>
        </div>
      </div>

      <div class="col-sm-3">
        <div class="form-group">
          <label>Hours</label>
          <div class="input-group">
            <input name="total_hours" id="total_hours" class="form-control" type="text">
          </div>
        </div>
      </div>

      <div class="col-sm-3">
        <div class="form-group">
          <label>Rate</label>
          <div class="input-group">
            <input name="rate" id="rate" class="form-control" type="text">
          </div>
        </div>


      <div class="col-sm-3">
        <div class="form-group">
          <label>Sub Total</label>
          <div class="input-group">
            <input name="invoice_amount" id="invoice_amount" class="form-control" type="text">
          </div>
        </div>
      </div>
    </div>
</div>

   </div>
<button type="button" class="repeat">Add Another</button>

JS: JS:

$(function() {
  $(".repeat").on('click', function(e) {
        var c = $('.base-group').clone();
    c.removeClass('base-group').css('display','block').addClass("child-group");
    $("#main-form").append(c);
  });
});

fiddle https://jsfiddle.net/riazxrazor/74mh06v9/9/ if you want to try 小提琴https://jsfiddle.net/riazxrazor/74mh06v9/9/如果您想尝试

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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