使用jquery使用新名称重复输入标记

时间:2014-08-25 19:46:01

标签: jquery

我在jquery中遇到问题,我有一个带有多个div的表单,它有多个输入并在我点击添加按钮时自己重复,问题是重复的输入具有格式{{1}的名称}

当我按下添加按钮时,我希望他们以新名称<input name="brand_meta[designer][1][name]" type="text" class="form-control" value="">

重复自己

我的小提琴在这里http://jsfiddle.net/prayaspanchuri/b2wskq1w/

由于

3 个答案:

答案 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);
    });

DEMO:http://jsfiddle.net/b2wskq1w/2/

答案 1 :(得分:1)

DEMO

$(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*/

 })