利用jQuery制作提交表单生成表格的案例

做个简单的提交表单生成表格

在这里插入图片描述

<body>
编号:<input type="text" name="bookNo"><br>
书名:<input type="text" name="bookName"><br>
作者:<input type="text" name="author"><br>
出版社:<input type="text" name="press"><br>
<input type="button" value="添加" id="bn">
查找:<input type="text" id="search">
<input type="button" value="查找" id="searchBn">
<input type="button" value=:"清除" id="clear">
</body>
首先我们要构思案例的思路,有条理的书写会让我们避免出现更多的bug;
  1. 当点击添加按钮是,获取表单的数据,并且存入arr;
  2. 根据数组创建表格;
  3. 根据search文本的内容在数组中模糊查找数据,查找的的数据存入新的数组中,并且通过这个数组创建表格;
  4. 清除新数组创建的表格,重新根据原数组创建表格;
<script>
var arr=[];
var button=[];
var table=$("<table></table>").css("borderCollapse","collapse").width(800).appendTo("bady");
$("#bn").on("click",function(e){
    var obj={};
    var bool=false;
    $(":text:not(#search)").each(function(index,item){
        var str=$(item).attr("name");
        if($(item).val().trim().length===0){
            bool=true;
        }
        obj[str]=$(item).val();
    });
    if(bool){
       alert("输入的内容有误!");
       return;
    }
    obj.deleted=false;
    arr.push(obj);
    createTable(arr);
});
$("#clear").on("click",function(){
    buDispose();
    table.empty();
    arr=[];
})
function bnDispose(){
    for (var i=0;i<buttons.length;i++;){
        button[i].off("click");
        button[i]=null;
    }
    buttons.length=0;
};  

function createTable(arr){
   bnDispose();
   table.empty();
   if(!arr || arr.length===0) return;
   var style={
       height="30px",
       lineheight="30px",
       textalign="center",
       border="1px solid #000"
   };
   var thr=$("<tr></tr>").appendTo(table);
   $.each(arr[0],function(prop,value){
       $("<th></th>").text(prop).appendTo(thr).css(style);
   });
   $.each(item,function(prop,value){
       var td=$("<td></td>").css(style).appendTo(td).on("click",function(e){
       if(prop==="deleted"){
          var bn=$("<button>删除</button>").appendTo(td).on("click",function(e){
             var tr=$(this).parent().parent()[0];
             var trs=Array.from($("tr"));
             var index=trs.indexOf(tr);
             arr.splice(index-1,1);
             createTable(arr);
          });
       buttons.push(bn);
       }else{
          td.text(value);
       };
      })
   });
}
</script>

看人这么少,我就先不写注释了;

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值