自己并未采用任何表格插件,参考网上例子,自己编写出来的django网页实例,请各位参考!

首先看图做事,表格布局采用bootstrap,俗话说bootstrap橹多了就会css了,呵呵,下面看图:

上面有两个按钮,是动态添加进来的,可以使用jquery语言,$("#xx").append新添一个按钮,

最基本的表单代码:

<button class="btn btn-small btn-primary" type="button" id="blank">添加空白表单</button>
<form class="form-inline">
{% csrf_token %}
<table class="table table-conde" id="t2">
<caption class="text-left"></caption>
<thead></thead>
<tbody></tbody>
<tfoot></tfoot>
</table>
<table class="table table-conde" id="t3">
<caption class="text-left"></caption>
<thead></thead>
<tbody></tbody>
<tfoot></tfoot>
</table>
<div class="text-center" id="form_add"></div>
</form>

接下来使用js动态加载表格:

$('#blank').click(function(){//空白表单
$("#t1 caption").append("<span class='text-info'><i class='icon-forward'></i> 合同基础清单</span>");
$("#t1 tbody").append(formbill());
$("#t2 caption").append("<span class='text-info'><i class='icon-forward'></i> 附件1 合同手机清单 &nbsp;&nbsp;&nbsp;&nbsp;<a class='btn btn-small' id='t2row'><i class='icon-plus'></i> 添加一行</a></span>");
$("#t2 thead").append("<th>客户姓名</th><th>合同号</th><th>业务号码</th><th>套餐类型</th><th>经办人</th><th>备注</th><th>操作</th>");
$("#t3 caption").append("<span class='text-info'><i class='icon-forward'></i> 附件2 合同座机清单 &nbsp;&nbsp;&nbsp;&nbsp;<a class='btn btn-small' id='t3row'><i class='icon-plus'></i> 添加一行</a></span>");
$("#t3 thead").append("<th>客户姓名</th><th>合同号</th><th>业务号码</th><th>套餐类型</th><th>经办人</th><th>备注</th><th>操作</th>");
$("#form_add").append("<input type='button' id='btn_add' value='提交数据' class='btn btn-primary btn-sm'/>");
});

然后实现行添加和行删除的功能:

//行添加
$('#t2 caption').on("click","#t2row",function(){
var len = $("#t2 tr").length+1;
$("#t2 tbody").append("<tr id="+len+">"
+"<td><input type='text' class='input-medium acct_code' placeholder='.input-medium'></td>"
+"<td><input type='text' class='input-medium acc_nbr' placeholder='.input-medium'></td>"
+"<td><input type='text' class='input-medium tc_type' placeholder='.input-medium'></td>"
+"<td><input type='text' class='input-medium con_agent' placeholder='.input-medium'></td>"
+"<td><input type='text' class='input-medium remark' placeholder='.input-medium'></td>"
+"<td><input type='text' class='input-medium remark' placeholder='.input-medium'></td>"
+"<td><a class='btn btn-small' onclick='deltr("+len+")'>删除</a></td>"
+"</tr>"
);
});
$('#t3 caption').on("click","#t3row",function(){
var len = $("#t3 tr").length+1;
$("#t3 tbody").append("<tr id="+len+">"
+"<td><input type='text' class='input-medium acct_name' placeholder='.input-medium'></td>"
+"<td><input type='text' class='input-medium acct_code' placeholder='.input-medium'></td>"
+"<td><input type='text' class='input-medium acc_nbr' placeholder='.input-medium'></td>"
+"<td><input type='text' class='input-medium tc_type' placeholder='.input-medium'></td>"
+"<td><input type='text' class='input-medium con_agent' placeholder='.input-medium'></td>"
+"<td><input type='text' class='input-medium remark' placeholder='.input-medium'></td>"
+"<td><a class='btn btn-small' onclick='deltr("+len+")'>删除</a></td>"
+"</tr>"
);
});
//行删除
   function deltr(index) {
     $("tr[id='"+index+"']").remove();//删除当前行
    }

这里要注意两个问题:

第一,像id=t2row/t3rowde 按钮是动态添加上的,如果使用普通的$('#xxx').click是没用的,必须使用$('#t2 caption').on("click","#t2row",function(){})这种格式

第二,删除按钮的id必须跟tr中的id相对应

实现行添加和行删除的功能后,该考虑如何将多字段的表单传递到django的后端中去,代码如下:

          var str_tailsj = "[";
$("#t2 tbody").find("tr").each(function(){
var tdArr1 = $(this).children();
str_tailsj = str_tailsj+"{'product_name':'手机',";
str_tailsj = str_tailsj+"'acct_name':'"+ tdArr1.eq(0).find("input").val()+"',";
str_tailsj = str_tailsj+"'acct_code':'"+ tdArr1.eq(1).find("input").val()+"',";
str_tailsj = str_tailsj+"'acc_nbr':'"+ tdArr1.eq(2).find("input").val()+"',";
str_tailsj = str_tailsj+"'tc_type':'"+ tdArr1.eq(3).find("input").val()+"',";
str_tailsj = str_tailsj+"'con_agent':'"+ tdArr1.eq(4).find("input").val()+"',";
str_tailsj = str_tailsj+"'remark':'"+ tdArr1.eq(5).find("input").val()+"'},";
});
str_tailsj = str_tailsj + "]";

将多字段表单,用json字符串的形式传递到后端,然后在后端利用python中的eval转换成相应的形式进行处理,具体代码参照下:

参照网址:http://www.cnblogs.com/CQ-LQJ/p/5442785.html

a="[{'bill1':'1','bill41':'2'},{'bill1':'1','bill41':'2'},]"
print eval(a)[0]['bill1']
输出为1

[django]表格的添加与删除实例(可以借鉴参考)的更多相关文章

  1. js动态添加-表格逐行添加、删除、遍历取值

    关于js对表格进行逐行添加,今天抽空整理了一下:新建一个html文件(没有编辑器的可以新建一个demo.txt文件,然后改后缀名为demo.html),把下面代码全部贴进去即可.功能包括:表格添加一行 ...

  2. yii gii自动生成的curd添加批量删除实例

    1.在视图中 CGridView中的columns添加,作用是添加多选框  代码如下 复制代码 array(        'selectableRows' => 2,        'foot ...

  3. javascript表格的添加和删除

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  4. 利用jquery动态添加和删除表格的一行,并且保存单行数据

    开发时遇到一个需求:要求要在页面的表格可以添加和删除一行,并能填写对应的数据后保存这一行数据. HTML代码 界面使用了freemarker框架,teams是后台传过来的list类型数据 <fo ...

  5. 添加,删除List<Map<String, Object>>元素

    这里讲对List<Map<String, Object>>的数据结构的添加和删除实例 添加 //初始化 List<Map<String, Object>> ...

  6. Django实现简单的用户添加、删除、修改等功能

    一. Django必要的知识点补充 1. templates和static文件夹及其配置 1.1 templates文件夹 所有的HTML文件默认都放在templates文件夹下. 1.2 stati ...

  7. Javascript DOM 03 表格添加、删除 + 搜索

    获取 tBodies.tHead.tFoot.rows.cells   隔行变色 鼠标移入高亮   添加.删除一行 DOM方法的使用                                   ...

  8. JS添加或删除HTML dom元素的方法实例分析

    本文实例讲述了JS代码添加或删除HTML dom元素的方法.分享给大家供大家参考,具体如下: 创建新的 HTML 元素 如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一 ...

  9. swift - 表格的编辑功能(添加、删除)

    表格(tableview)的确是一个很好用的控件,现在来实现一个编辑功能的实现,包含添加和删除,删除包括长按删除和左滑删除 效果图如下: 具体代码如下: 1.创建表格(这个表格有2个区,有区头和区尾) ...

随机推荐

  1. 一个简单的inno setup模板

    一.模板代码 基本功能包括多路径安装.多语言.自定义图标. [Setup] ShowLanguageDialog=yes AppCopyright=Copyright Reserved(C) , 36 ...

  2. DNS知识指南

    1. 什么是记录? 记录的实质是存在DNS服务器叶结点上的一条映射(只讨论权威DNS,不讨论Local DNS). A记录:(域名:IP地址) 例:cnblogs.com   A  42.121.25 ...

  3. WCF 中 TCP 与 HTTP 性能简单比较

    在使用 WCF 时,为了更好地进行调试,我都选择了 HTTP 协议进行数据传输.最近项目对性能要求比较高,所以就换成了使用 TCP 协议.并对二者的性能进行了一个简单的测试.以下是测试结果: 环境: ...

  4. jQuery网页版五子棋小游戏源码下载

    体验效果:http://hovertree.com/texiao/game/4/ 网页五子棋源代码: <!DOCTYPE html> <html> <head> & ...

  5. C#测试题若干,都是基础阿

    类的以下特性中,可以用于方便地重用已有的代码和数据的是( ).   A.多态B.封装C.继承D.抽象 答案:http://hovertree.com/tiku/bjaf/a3k6pgq5.htm 可用 ...

  6. 让服务器iis支持.apk文件下载的设置方法

    随着智能手机的普及,越来越多的人使用手机上网,很多网站也应手机上网的需要推出了网站客户端,.apk文件就是安卓(Android)的应用程序后缀名,默认情况下,使用IIS作为Web服务器的无法下载此文件 ...

  7. N皇后问题

    题目描述 在n×n格的棋盘上放置彼此不受攻击的n个皇后.按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子.n后问题等价于再n×n的棋盘上放置n个后,任何2个皇后不妨在同一行或同 ...

  8. Tomcat指定的服务已存在

    解压Tomcat8.0后,运行service.bat install,结果安装未成功,进入logs文件夹,查看错误日志,提示: 指定的服务已存在. Failed to install service ...

  9. spi 10方式编写

    //第一个CS变低的时候要sclk为高电平,第一个跳变沿进行赋值 module spi(input clk,input rst_n,output reg sclk,output reg cs,outp ...

  10. Python中三目计算符的正确用法及短路逻辑

    今天在看别人代码时看到这样一种写法, 感觉是个挺容易踩到的坑, 搞清楚后写出来备忘. 短路逻辑 Python中进行逻辑运算的时候, 默认采用的是一种叫做短路逻辑的运算规则. 名字是很形象的, 下面直接 ...