我正在使用jQuery动态添加新的表行。它添加成功,现在我想根据下拉值动态地提取每个记录,并显示在多个div中。如果表中只有一行,那么一切都可以正常工作,但当我使用jQuery添加新行时,它不会因此而增加计数器值。当我从第二行选择下拉值时,它不会拉取记录。
function add_allowance() {
var click = 2;
jQuery("#addrows").click(function(){
jQuery('#maintable tr:last').after('<tr class="tablechild"><td><select name="empallownacename" id="allowancename" class="select2_category form-control"><option value="none" selected="selected">-Select-</option></select></td><td><input type="text" name="empmount" value="" class="form-control" /></td><td><input type="text" name="empdescription" value="" class="form-control" /></td><td><a style="cursor: pointer;" value="Remove" class="minusbtn" id="remove"><i class="fa fa-trash-o"></i></a></td></tr>');
});
click++;
}
<tr class="tablechild">
<td>
<select name="allowancename<?php echo $counter; ?>" id="allowancename" class="select2_category form-control">
<option>-Select-</option>
<?php foreach($allowances as $allowance):?>
<option value="<?php echo $allowance['id']; ?>"><?php echo $allowance['name'];?></option>
<?php $counter; ?>
<?php endforeach; ?>
</select>
</td>
<td><input type="text" id="allowanceamount" name="allowanceamount" value="" class="form-control" /></td>
<td><input type="text" id="allowancedesc" name="allowancedesc" value="" class="form-control" /></td>
<td>
<a style="cursor: pointer;" value="Remove" class="minusbtn" id="remove"><i class="fa fa-trash-o"></i></a>
</td>
</tr>
单击时,将调用该方法,并始终以2初始化变量。这不是一个好的做法。您可以执行以下操作:函数add_allowance(){
var click;
jQuery("#addrows").click(function(){
jQuery('#maintable tr:last').after('<tr class="tablechild"><td><select name="empallownacename" id="allowancename" class="select2_category form-control"><option value="none" selected="selected">-Select-</option></select></td><td><input type="text" name="empmount" value="" class="form-control" /></td><td><input type="text" name="empdescription" value="" class="form-control" /></td><td><a style="cursor: pointer;" value="Remove" class="minusbtn" id="remove"><i class="fa fa-trash-o"></i></a></td></tr>');
});
click=$('table tr).length; // It will count number of rows in the table and return integer value no of rows
}