[英]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.