表格的动态编辑——含Cookie

HTML

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.css" rel="stylesheet">
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
    <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.js"></script>
</head>
<script src="../js/drag.js" type="text/javascript" charset="utf-8"></script><!-- 弹出框可拖拽 -->
<script>
    window.onload=function () {
        var tab=document.getElementById("data-table");
        var mymodal=document.getElementById("myModal");//获取弹出框底层
        var col=document.getElementsByClassName("col-lg-12")[0];
        var tianjia=col.children[1];//获取添加按钮
        var guanbi=document.getElementsByClassName("modal-footer")[0].children[0];//获取弹出框关闭按钮
        var baocun=document.getElementsByClassName("modal-footer")[0].children[1];//获取弹出框保存按钮
        if(document.cookie){//判断是否存在cookie
            var cookiestr=document.cookie; //获取cookie字符串
            var list=cookiestr.split("; ");//将其分割成数组

            for( var i=0;i <list.length;i++){//将每一个cookie里存储的内容放在表里
                var kv=list[i].split("=");
                var message=kv[1].split(",");
                var newtrr=tab.children[0].children[1].cloneNode(true);
                newtrr.index=i;
                for(var j=0;j<message.length;j++){
                    newtrr.children[j].innerText=message[j];
                }
                tab.children[0].appendChild(newtrr);
            }
        }

        //表格动态编辑
        tab.addEventListener("dblclick",function(e){
            var e=e||event;
            if(e.target.nodeName=="TD"&&e.target.className!="operation"){
                var oInput=document.createElement("input");
                oInput.type="text";
                var val=e.target.innerText;
                oInput.value=val;
                e.target.innerText="";
                e.target.appendChild(oInput);
                oInput.focus();
            }
            oInput.addEventListener("blur",function(e){
                var e=e||event;
                var val=this.value;
                e.target.parentNode.innerText=val;
            })
        })
        //点击删除
        tab.addEventListener("click",function(e){
            var e=e||event;
            if(e.target.nodeName=="A"){
                var index=e.target.parentNode.parentNode.index;

                if(index>=0){
                    var d=new Date();
                    d.setDate(d.getDate()-1);
                    document.cookie="NO."+index+"= ; expires="+d;

                }
                e.target.parentNode.parentNode.parentNode.removeChild(e.target.parentNode.parentNode);
            }
        })
        //点击添加,弹出框出现
        var content=document.getElementsByClassName("modal-content")[0];
        var header=document.getElementsByClassName("modal-header")[0];
        tianjia.addEventListener("click",function(){
            mymodal.style.display="block";
            dragable({//弹出框移动
                down:header,
                target:content.parentNode,
                ranger:mymodal
            });
        })
        //点击关闭,弹出框关闭
        guanbi.addEventListener("click",function(){
            mymodal.style.display="none";
        })
        //点击保存 生成一条新的记录显示在页面上,并生成新的cookie
        var inputs=document.getElementsByTagName("input");
        var num=0;
        baocun.addEventListener("click",function(e){
            var e=e||event;
            var information=[];
            var newtr=tab.children[0].children[1].cloneNode(true);
            for(i=0;i<inputs.length;i++){
                newtr.children[i].innerText=inputs[i].value;
                information.push(inputs[i].value);
            }

            var d=new Date();
            d.setDate(d.getDate()+2);
            document.cookie="NO."+num+"="+information+"; expires="+d;
            num++;
            tab.children[0].appendChild(newtr);
            mymodal.style.display="none";
        })

    }
</script>
<body>
    <div class="container">
        <div class="row">
            <div class="col-lg-12">
                <br>
                <a class="btn btn-large btn-primary">添加</a>
                <br><br>
                <table id="data-table" class="table table-striped">
                    <tr>
                        <th>姓名</th>
                        <th>联系电话</th>
                        <th>学历</th>
                        <th>年龄</th>
                        <th>期望薪资</th>
                        <th>操作</th>
                    </tr>
                    <tr>
                        <td>Steven.Jobs</td>
                        <td>13701364084</td>
                        <td>大学辍学</td>
                        <td>45</td>
                        <td>$2300000</td>
                        <td class="operation">
                            <a class="btn btn-xs btn-danger">删除</a>
                        </td>
                    </tr>
                    <tr>
                        <td>ZuckerBerg</td>
                        <td>13701364084</td>
                        <td>哈佛大学博士</td>
                        <td>45</td>
                        <td>$99000000</td>
                        <td class="operation">
                            <a class="btn btn-xs btn-danger">删除</a>
                        </td>
                    </tr>
                    <tr>
                        <td>Bill.Gates</td>
                        <td>13701364084</td>
                        <td>大学辍学</td>
                        <td>45</td>
                        <td>$99000000</td>
                        <td class="operation">
                            <a class="btn btn-xs btn-danger">删除</a>
                        </td>
                    </tr>
                </table>
            </div>
        </div>
    </div>




    <div id="myModal" class="modal" style="background: rgba(0,0,0,0.5);">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <h4 class="modal-title">请添加信息</h4>
                </div>
                <div class="modal-body">
                    <form action="" style="margin-top: 30px;">
                        <div class="form-group">
                            <label class="sr-only" for="exampleInputAmount">Amount (in dollars)</label>
                            <div class="form-group">
                                <div class="input-group">
                                    <div class="input-group-addon">姓&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;名</div>
                                    <input type="text" class="form-control" id="exampleInputAmount" placeholder="只能包含数字字母下划线,且数字不能开头,长度在8~16之间">
                                </div>
                            </div>
                            <div class="form-group">
                                <div class="input-group">
                                    <div class="input-group-addon">联系电话</div>
                                    <input type="text" class="form-control" placeholder="Amount">
                                </div>
                            </div>
                            <div class="form-group">
                                <div class="input-group">
                                    <div class="input-group-addon">学&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;历</div>
                                    <input type="text" class="form-control" placeholder="Amount">
                                </div>
                            </div>
                            <div class="form-group">
                                <div class="input-group">
                                    <div class="input-group-addon">年&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;龄</div>
                                    <input type="text" class="form-control" id="exampleInputAmount" placeholder="Amount">
                                </div>
                            </div>
                            <div class="form-group">
                                <div class="input-group">
                                    <div class="input-group-addon">期望薪资</div>
                                    <input type="text" class="form-control" id="exampleInputAmount" placeholder="Amount">
                                </div>
                            </div>
                        </div>
                    </form>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default">关闭</button>
                    <button type="button" class="btn btn-primary">保存</button>
                </div>
            </div>
            <!-- /.modal-content -->
        </div>
        <!-- /.modal-dialog -->
    </div>
    <!-- /.modal -->
</body>

</html>

拖拽的js代码

//调用该函数时传的参数是对象
// 如 :dragable({
//      down:p,        //点击的元素
//      target : div,  //移动的目标元素
//      ranger: div,   //其有定位的父元素
//      moving : function(x,y){   //移动时要执行的函数
//          
//      },
//      ending :function(){        //结束时要执行的函数
//          console.log("拖拽结束");
//      }
//  })

function dragable(options){
    var father=options.ranger||window;
    options.down.onmousedown=function(e){
        console.log(1);
        var e=e||event;
        var pos={
            x:e.offsetX,
            y:e.offsetY
        };
        document.onmousemove=function(e){
            var e=e||event;
            var maxleft=father.offsetWidth||window.innerWidth;
            var maxtop=father.offsetHeight||window.innerHeight;
            var _left=Math.max(0,Math.min(maxleft-options.target.offsetWidth,e.pageX-pos.x-getPagePosition(father).left));
            var _top=Math.max(0,Math.min(maxtop-options.target.offsetHeight,e.pageY-pos.y-getPagePosition(father).top));
            options.target.style.margin="0px";
            options.target.style.left=_left+"px";
            options.target.style.top=_top+"px";
            options.moving?options.moving(_left,_top):"";
            console.log(2);
        }
    }
    document.onmouseup=function(){
        document.onmousemove=null;
        options.ending?options.ending():"";
    }
}
function getPagePosition(target){
    var sumleft=target.offsetLeft;
    var sumtop=target.offsetTop;
    while(target.offsetParent != null){
        sumleft+=target.offsetParent.offsetLeft;
        sumtop+=target.offsetParent.offsetTop;
        target=target.offsetParent;
    }
    return {
    left:sumleft,
    top:sumtop
    };
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值