构造函数的demo练习

来源:互联网 发布:ual研究生 留学 知乎 编辑:程序博客网 时间:2024/06/05 11:24
<!DOCTYPE html><html lang="zh-CN"><head>    <meta charset="utf-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1">    <title>Bootstrap 101 Template</title>    <link href="lib/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">    <link rel="stylesheet" href="css/main.css"/>    <!--[if lt IE 9]>    <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>    <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>    <![endif]--></head><body><section class="container text-center">    <h2>学生信息表</h2>    <!--输入-->    <form class="form-horizontal">        <div class="form-group">            <label for="stuName" class="col-sm-4 control-label">学生姓名</label>            <div class="col-sm-5">                <input type="text" class="form-control" id="stuName" placeholder="学生姓名">            </div>        </div>        <div class="form-group">            <label for="phone" class="col-sm-4 control-label">联系方式</label>            <div class="col-sm-5">                <input type="text" class="form-control" id="phone" placeholder="联系方式">            </div>        </div>        <div class="form-group">            <div class="col-sm-12">                <button type="button" class="btn btn-default btn-warning" id="addInformation"><span                        class="glyphicon glyphicon-plus"></span>&nbsp添加信息                </button>                <button type="button" class="btn btn-default btn-info" id="confirmEdit" style="display: none;"><span                        class="glyphicon glyphicon-edit"></span>&nbsp确认编辑                </button>            </div>        </div>    </form>    <!--表格-->    <table class="table table-hover" id="table">        <thead>        <tr>            <th class="text-center col-sm-3">学号</th>            <th class="text-center col-sm-3">学生姓名</th>            <th class="text-center col-sm-3">联系方式</th>            <th class="text-center col-sm-3">操作</th>        </tr>        </thead>        <tbody id="showData">        </tbody>    </table>    <div class="alert alert-success" role="alert" style="display: none" id="noData">暂无数据。。。</div>    <!--模态框-->    <div class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog">        <div class="modal-dialog modal-sm" role="document">            <div class="modal-content">                <div class="modal-header">                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>                    <h4 class="modal-title">确定要删除吗?</h4>                </div>                <div class="modal-footer">                    <button type="button" class="btn btn-default" data-dismiss="modal" id="confirm">取消</button>                    <button type="button" class="btn btn-danger" data-dismiss="modal" id="sure">确定</button>                </div>            </div><!-- /.modal-content -->        </div><!-- /.modal-dialog -->    </div><!-- /.modal --></section></body><script src="lib/jquery/jquery.min-v1.js"></script><script src="lib/bootstrap/dist/js/bootstrap.min.js"></script><script>(function ($) {    /*数据层*/    var data = [];    function CreateDom(data) {        this.data = data;    }    CreateDom.prototype.info = function () {        var str = '';        for (var i = 0; i < this.data.length; i++) {            str += '<tr>';            str += '<td>' + this.data[i].id + '</td>';            str += '<td>' + this.data[i].name + '</td>';            str += '<td>' + this.data[i].phone + '</td>';            str += '<td><button class="btn btn-default edit" ><span class="glyphicon glyphicon-edit"></span>&nbsp编辑</button>';            str += ' <button class="btn btn-default del" data-toggle="modal" data-target=".bs-example-modal-sm"><span class="glyphicon glyphicon-remove"></span>&nbsp删除</button></td>';            str += '</tr>';        }        str += '<tr>';        str += '<td colspan="3"></td><td><button class="btn btn-danger clear" data-toggle="modal" data-target=".bs-example-modal-sm"><span class="glyphicon glyphicon-trash" ></span>&nbsp清空所有</button></td>';        str += '</tr>';        $('#showData').html(str);    };    function OperateData(data) {        this.data = data;    }    OperateData.prototype = {        constructor: OperateData,        addInformation: function (name, phone) {            var data = {                id: 'ID' + new Date().getTime(),                name: name,                phone: phone            };            this.data.push(data);            CreateDom.prototype.info.apply(this);        },        del: function (index) {            this.data.splice(index, 1);            CreateDom.prototype.info.apply(this);            return this.data.length;        },        edit: function (index, name, phone) {            this.data[index] = {                id: 'ID' + new Date().getTime(),                name: name,                phone: phone            };            CreateDom.prototype.info.apply(this);        },        clear: function () {            this.data = [];            CreateDom.prototype.info.apply(this);        }    };    /*行为层*/    var index = 0;    $(function () {        var cre = new CreateDom(data);        var oper = new OperateData(data);        $('#addInformation').on('click', function () {            var n = $('#stuName').val();            var p = $('#phone').val();            if (n == '' || p == '') {                alert('请输入内容');                return;            }            var namereg =/^[\u4E00-\u9FA5A-Za-z]+$/;            var reg = /^1[3|4|5|7|8][0-9]{9}$/;            if (!(namereg.test(n))) {                alert("学生姓名只能输入中文和英文");                return false;            }            if (!(reg.test(p))) {                alert("手机号不是完整的11位手机号或者正确的手机号前七位");                return false;            }            oper.addInformation(n, p);            $('#noData').hide();            $('#table').show();            $('#stuName').val('');            $('#phone').val('');        });        $('#showData').on('click', '.del', function () {            index = $(this).parent().parent().index();            $('#addInformation').show();            $('#confirmEdit').hide();            $('#stuName').val('');            $('#phone').val('');        });        $('#sure').on('click', function () {            if (!oper.del(index)) {                $('#noData').show();                $('#table').hide();            }            if (index == -2) {                oper.clear();                $('#noData').show();                $('#table').hide();            }        });        $('#showData').on('click', '.edit', function () {            index = $(this).parent().parent().index();            var n = $(this).parent().prev().prev().text();            var p = $(this).parent().prev().text();            $('#stuName').val(n);            $('#phone').val(p);            $('#addInformation').hide();            $('#confirmEdit').show();        });        $('#confirmEdit').on('click', function () {            var n = $('#stuName').val();            var p = $('#phone').val();            oper.edit(index, n, p);            $('#addInformation').show();            $('#confirmEdit').hide();            $('#stuName').val('');            $('#phone').val('');        });        $('#showData').on('click', '.clear', function () {            index = -2;            $('#addInformation').show();            $('#confirmEdit').hide();            $('#stuName').val('');            $('#phone').val('');        });    })})(jQuery);</script></html>
原创粉丝点击