2014-10-17 73 views
1

我是JavaScript新手,我有一個帶有兩個文本字段的html表並添加按鈕,現在我寫了一個小小的jquery腳本,它在生成兩個文本字段時點擊添加按鈕所有這些工作的成功,但我的問題是如何把這些動態生成的字段不同的名稱和ID。我的代碼如下。如何設置使用jquery動態生成的動態輸入名稱live()

HTML代碼

<table width="50%" border="1" cellspacing="0" cellpadding="0" class="table"> 
    <tr> 
    <td>ACC_CODE</td> 
    <td>ACC_NAME</td> 
    <td>ACTION</td> 
    </tr> 
    <tr> 
    <td>&nbsp;<input type="text" class="acc_code" name="acc_code" id="acc_code"/></td> 
    <td>&nbsp;<input type="text" class="click" name="parentinput" id="parentinput" /></td> 
    <td>&nbsp;<input type="button" value="Add New" class="addNew" name="addNew" /></td> 
    </tr> 
</table> 

jQuery代碼

$(document).ready(function() {  
$('.addNew').live({ 
    click: function(){ 
$('.table tr:last').after('<tr><td><input type="text" class="acc_code" name="acc_codes" id="acc_codes"/></td><td><input type="text" class="click" name="parentinputs" id="parentinputs" /></td><td><input type="button" value="Add New" class="add" name="add" /></td></tr>'); 

}); 
}); 

請任何幫助,如何產生不同的名稱和這些領域的IDS。

+0

使用類而不是ID。並添加一個名稱爲 – Spokey 2014-10-17 08:42:43

回答

0

我會用在()基地(和關閉())。 您將它設置爲父容器(本例中爲表格)並收聽「addNew」類。 任何時候當表格中添加了class =「addNew」的新項目時,它將處於活動狀態。

<table width="50%" border="1" cellspacing="0" cellpadding="0" class="table"> 
    <tr> 
    <td>ACC_CODE</td> 
    <td>ACC_NAME</td> 
    <td>ACTION</td> 
    </tr> 
    <tr> 
    <td>&nbsp;<input type="text" class="acc_code" name="acc_code" id="acc_code"/></td> 
    <td>&nbsp;<input type="text" class="click" name="parentinput" id="parentinput" /></td> 
    <td>&nbsp;<input type="button" value="Add New" class="addNew" name="addNew" /></td> 
    </tr> 
</table> 
<script> 
$(document).ready(function() {  
    $('.table').on('click', '.addNew', function() { 
    $('.table tr:last').after('<tr><td><input type="text" class="acc_code" name="acc_codes" id="acc_codes"/></td><td><input type="text" class="click" name="parentinputs" id="parentinputs" /></td><td><input type="button" value="Add New" class="addNew" name="add" /></td></tr>'); 
    }); 
}); 
</script> 

但注意:在你的代碼,你這樣做:

<input type="button" value="Add New" class="add" name="add" /> 

當然這不會工作;它必須是class =「addNew」

0

所有.live首先因爲折舊JQ 1.7 使用.delegate

所以..

​​
+3

的計數器,但從'jQuery 1.7開始,.delegate()已被.on()方法取代。「 - http://api.jquery.com/delegate/ – Rhumborl 2014-10-17 08:42:04

0

我有一個可以正常工作的建議,

爲什麼不把輸入字段做個數組,

所以當你提交它的時候,它會是一組輸入組

,或者你可以很容易地使名稱標識的是對TR指數

喜歡NAME_1和ID_1,NAME_2和ID_2