我在jquery中遇到问题,我有一个带有多个div的表单,它有多个输入并在我点击添加按钮时自己重复,问题是重复的输入具有格式{{1}的名称}
当我按下添加按钮时,我希望他们以新名称<input name="brand_meta[designer][1][name]" type="text" class="form-control" value="">
我的小提琴在这里http://jsfiddle.net/prayaspanchuri/b2wskq1w/
由于
答案 0 :(得分:1)
$( '.'+id+':last' ).find('input').each(function(){
var elemName = $(this).attr("name");
var oldNameNum = parseInt(elemName.match(/\[(\d+)\]/)[1], 10);
var newName = $(this).attr("name").replace(/\[(\d+)\]/, "["+(oldNameNum+1)+"]");
$(this).attr("name", newName);
});
答案 1 :(得分:1)
$(document).ready(function(){
$('.btn.btn-default.btn-sm').bind('click',function(){
var id = $(this).attr('id');
var n = +$('.'+id).length + 1;
var html = $('.'+id).html()
.replace(/\[\d+\]/g, '[' + n + ']');
$( '.'+id+':last' ).after( $( '<div class="col-md-12"><hr style="border-top:1px #000 solid"></div><div class="'+id+'">'+html+'</div>' ) ).fadeIn('slow');
});
});
答案 2 :(得分:0)
为什么你想要不同的名字?您可以使用像city []这样的名称arrray,它将包含所有输入数据。但是如果你想要不同的名字,你可以使用隐藏的输入来跟踪下一个字段的名称,如
<input type='hidden' name='counter' id='counter' value='1'>
当重复输入时将其值增加1并将其值赋给输入名称
像这样 $("#addbtn").click(function(e){
var countertrack= $("#counter").val();
var newname= parseInt(countertrack+1);
/* then assign the name using this variable*/
})