我有这段代码
$('.cloneMe').on('click', function(e) {
var idToAppend = $(this).data('id');
$(this).data('id', idToAppend + 1);
$('div.render-form-editlayout-10').clone("").find('[id]').attr('id', function(idx, val) {
var newId = (this.name == undefined) ? val + idToAppend : this.name + '_' + idToAppend;
if ((this.name != undefined)) {
$(this).attr('name', newId);
console.log('For elements with name the new ID is: ' +
newId + ' new Name is: ' + newId);
}
return newId;
}).closest('div.render-form-editlayout-10').insertBefore(this);
})
我的jsfiddle是 this
单击加号按钮时,它第一次正常工作,但下次克隆多个时,如何在不更改其他逻辑的情况下修复它?
由于
答案 0 :(得分:0)
问题在于这一行:$('div.render-form-editlayout-10').clone("")
。
如果您想选择第一个,请使用first方法:$('div.render-form-editlayout-10').first().clone("")
我更新了您的jsfiddle。但你的jsfiddle中的问题是使用的选择器。我也修好了。你的小提琴与你给定的代码不同,所以我不能说你原来的代码是否有同样的问题。
答案 1 :(得分:0)
检查这个小提琴:https://jsfiddle.net/56sfx5ur/15/
我更新了以下js行:
@Controller
问题是你克隆了整个容器,它最初只包含一组表单字段,但在第二个克隆上它包含2个表单字段集,因此克隆产生了4个表单集等。