2013-10-09 142 views
0

我有一个窗体,我需要动态添加按钮click.Html上的某些行点击动态添加,但我需要更改动态添加元素的ID值。动态更改id属性值

Demo

JS代码

$(function() { 
    $('.click').on('click', function() { 

     $('#mytable tbody tr').clone(true).insertAfter('#mytable tbody'); 

    }); 

}); 

我需要的是<input type="text" id="name_1" />添加增量值id属性为每个文本框什么。 任何想法?

+1

为什么不使用类呢? – Johan

+0

..对,并最终在第一个共同的祖先上设置ID – Stphane

回答

1

,试试这个:

// Code goes here 
$(function(){ 
    var unique_id=0 
    $('.click').on('click',function(){ 
    unique_id++ 
    $('#mytable tbody tr').clone(true).insertAfter('#mytable tbody') 
     .find("input") 
     .each(function(){ 
      $(this).attr("id",$(this).attr("id")+"_"+(unique_id)) 
     }) 

    }); 

}); 

分叉您的Plunker:http://plnkr.co/edit/R6qvaZ2m2Kt2DEGL3SWF?p=preview

注意:此表单数据将无法正确提交,因为字段没有名称值。如果你打算允许自然提交的表单,而不是依赖于JS,你总是可以尝试以下方法:

<input type="text" name="name[]" /> 
<input type="text" name="age[]" /> 
<input type="text" name="salary[]" /> 

...在这种情况下,你会用复制的输入字段完全没有问题,而不必为每个人提供一个唯一的ID。

+0

谢谢肖恩..这个工作完美..很多 – Gopesh

+0

我刚刚意识到它没有像我期望的那样工作 - 我已经在两个地方更新了代码。 –

+0

是的,唯一的ID问题..多谢你的时间 – Gopesh

0

您可以通过更改其ID属性:

$(selector).attr('id', 'new-id-here'); 
0

我想你需要插入之前更改克隆元素的ID?您可以尝试张贴在这种潜在的相似问题的答案:如果你想改变你添加它的每个文本框的ID How to JQuery clone() and change id

var c = 0; 
$("button").on('click',function(){ 
    var klon = $('#id'+ c); 
    klon.clone().attr('id', 'id'+(++c)).insertAfter(klon); 
}); 

jsfiddle here

+0

感谢您的答复..我需要cahnge每个文本框的编号 – Gopesh

+0

啊,陷阱。那么你真的需要在这种情况下使用ID吗? Johan对你关于使用类的帖子的评论可能是一个更好的主意,除非你*在每个文本字段上绝对需要唯一的ID。 – Scottie