我有下面的html,它生成如下动态行。
<html>
<head>
<script src="http://code.jquery.com/jquery-1.5.1.min.js"></script>
<script>
$(document).ready(function() {
var id = 0;
// Add button functionality
$("table.dynatable button.add").click(function() {
id++;
var master = $(this).parents("table.dynatable");
// Get a new row based on the prototype row
var prot = master.find(".prototype").clone();
prot.attr("class", "")
prot.find(".id").attr("value", id);
master.find("tbody").append(prot);
});
// Remove button functionality
$("table.dynatable button.remove").live("click", function() {
$(this).parents("tr").remove();
});
});
</script>
<style>
.dynatable {
border: solid 1px #000;
border-collapse: collapse;
}
.dynatable th,
.dynatable td {
border: solid 1px #000;
padding: 2px 10px;
width: 170px;
text-align: center;
}
.dynatable .prototype {
display:none;
}
</style>
</head>
<body>
<table class="dynatable">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Col 3</th>
<th>Col 4</th>
<th><button class="add">Add</button></th>
</tr>
</thead>
<tbody>
<tr class="prototype">
<td><input type="text" name="id[]" value="0" class="id" /></td>
<td><input type="text" name="name[]" value="abc" /></td>
<td><input type="text" name="col4[]" value="xyz" /></td>
<td><input type="text" name="col3[]" value="sample" /></td>
<td><button class="remove">Remove</button>
</tr>
</table>
</body>
</html>
它工作正常。但是这里的值是硬编码的。通常我从数据库中获取这些值,我可以使用 jstl 标签填充它。单击添加按钮时,它会创建一行,但它提供与第一行相同的值。
我的问题是是否可以重复使用同一行但没有填充任何值,以便用户可以键入新创建的行的值。
另外,如何在创建新行时分配唯一的 ID 和名称?在上面的代码中,id 和名称是硬编码的。