2013-10-09 143 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