我正在制作一个表单,用户可以根据需要添加尽可能多的元素,问题是,当我使用克隆进行操作时,所有创建的元素都具有相同的名称,因此无法智能检索用于PHP中的进一步处理。我怎么能找到解决办法?如果我想克隆的元素具有不同的名称,应该使用什么而不是.clone()?
这是我的html:
<form id="form" action="/create/table" method="post">
<table class="admtable, reportable">
<caption>Admins</caption>
<thead>
<tr>
<th>Name</th>
<th>Username</th>
<th>Email</th>
<td><button class="add">Add</button></td>
</tr>
</thead>
<tbody>
<tr class="prototype">
<td><input type="text" name="name[]" value="" /></td>
<td><input type="text" name="username[]" value="" /></td>
<td><input type="text" name="email[]" value="" /></td>
<td><button class="remove">Delete</button></td>
</tr>
</table>
<table class="usrtable, reportable">
<caption>Users</caption>
<thead>
<tr>
<th>URL</th>
<th>Keyword</th>
<th>Link</th>
<td><button class="add">Add</button></td>
</tr>
</thead>
<tbody>
<tr class="prototype">
<td><input type="text" name="name[]" value="" /></td>
<td><input type="text" name="username[]" value="" /></td>
<td><input type="text" name="email[]" value="" /></td>
<td><button class="remove">Delete</button></td>
</tr>
</table> </form>
这是jQuery代码至今:
$(document).ready(function() {
var className = $(this).closest('table').attr("add"); //??
// Add button functionality
$("button.add").click(function() {
var master = $(this).closest("table");
// Get a new row based on the prototype row
var prot = master.find(".prototype").clone(true);
prot.attr("class", "");
master.find("tbody").append(prot);
});
// Remove button functionality
$("button.remove").live("click", function() {
$(this).closest("tr").remove();
});
});
对不起,但我从来没有用过这些,我真的不知道我在找什么。我实际上试图以某种方式现在创建一个计数器... var rowCount = $(className).length;这不是对我做任何魔术,虽然大声笑 – 2011-05-27 23:29:16
以及它可能没有做任何魔术,因为它必须每次插入/更新任何元素时被解雇..这不是一个“活”事件可以这么说 – tXK 2011-05-29 19:16:32