2014-10-17 75 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