我有一个表,可以包含任意多行。这些行中的每一行都包含一个表单域的元素。最初,它看起来像这样:
<table border="2" id="familyHeader">
<tr>
<th>Description</th>
<th>Still associated?</th>
</tr>
<tr id="addNewChildRow">
<td>
<input type="text" ....>
<input type="text" ....>
</td>
<td>
<input type="submit" ....> <!-- this is intentionally not part of a form element -->
</td>
</tr>
<form id="family" method="post" action="php/update_children.php">
<tr id="updateChildrenRow">
<td> > > > > > > </td>
<td>
<input type="submit" id="updateChildren" name="updateChildren" class="updateChildren" value="Update Children"/>
</td>
</tr>
</form>
</table>
所以基本上顶部允许您输入详细信息 - 第一个“提交”按钮上有一个捕获,它将行添加到表中。它使用这个 JavaScript/jQuery 在最后一行之前添加它们(希望在表单元素中):
function insert_child(id, type, snumber, serialnumber)
{
$('#updateChildrenRow').before("<tr> <td>"+ type+" | "+snumber+" | "+serialnumber +"</td>"
//$('#family').append("<tr> <td>"+ type+" | "+snumber+" | "+serialnumber +"</td>"
+ "<td> <input type=\"hidden\" name=\""+id+"\" value=\"false\" />"
+ "<input type=\"checkbox\" checked=\"true\" name=\""+id +"\" value=\"true\"/> </td>"
+ "</tr>");
}
这是可行的,因为它将元素插入到正确的位置,但是当我们提交表单时,数据不会被发布。但是,如果我们将打开的表单元素移动到第二行并提交,“addNewChildRow”按钮会被发布(我认为这表明我的发布逻辑有效,但它只是没有检测到动态添加的字段)。
正如您所看到的,我尝试附加到表单本身而不是表格,但这没有奏效(它们没有显示) - 有谁知道将表单元素动态添加到表格的诀窍是什么?被它周围的形式“检测到”?
谢谢 :)