之前td中的表单都是通过ModelForm生成的,也就是说动态增加的td中的是{{ form.name }}。但是在提交数据时发现问题,每次提交只能提交添加的最后一个一行的数据,怀疑是每次增添的tr中{{ form.name }}把上行的{{ form.name }}给覆盖了,而不是额外增加。
所以打算做该功能的表单不用django的ModelForm,而是直接手写html
效果图如下:
html:
<table class="table" id="tabTravelDetail">
<tr style="background-color:#e9ecef">
<td>关系</td>
<td>姓名</td>
<td>电话</td>
<td>地址</td>
<td>操作</td>
</tr>
<tr>
<td>
<select name="relationship" maxlength="50"
class="form-control custom-select">
<option value="" selected="">--请选择--</option>
<option value="1">本人</option>
<option value="2">配偶</option>
<option value="3">子女</option>
<option value="4">父母</option>
<option value="5">兄弟</option>
<option value="6">姐妹</option>
<option value="7">家属</option>
<option value="8">朋友</option>
</select>
</td>
<td>
<input type="text" name="re_name" maxlength="50"
class="form-control">
</td>
<td>
<input type="text" name="re_number"
maxlength="50" class="form-control">
</td>
<td>
<input type="text" name="re_address"
maxlength="50" class="form-control">
</td>
<td align="center">
<input type="button" value=" + " onclick="AddTr(this);" key="1"/>
</td>
</tr>
</table>
<table id="tmpTrvael" style="display: none">
<tr>
<td>
<select name="relationship" maxlength="50"
class="form-control custom-select">
<option value="" selected="">--请选择--</option>
<option value="1">本人</option>
<option value="2">配偶</option>
<option value="3">子女</option>
<option value="4">父母</option>
<option value="5">兄弟</option>
<option value="6">姐妹</option>
<option value="7">家属</option>
<option value="8">朋友</option>
</select>
</td>
<td>
<input type="text" name="re_name" maxlength="50"
class="form-control">
</td>
<td>
<input type="text" name="re_number"
maxlength="50" class="form-control">
</td>
<td>
<input type="text" name="re_address"
maxlength="50" class="form-control">
</td>
<td align="center">
<input type="button" value=" - " onclick="RemoveTr(this);"/>
</td>
</tr>
</table>
js:
function AddTr(obj) {
$("#tabTravelDetail").append($("#tmpTrvael").html());
};
//移除详细行程
function RemoveTr(obj) {
$(obj).parent().parent().remove();
};