Vue.js实现可编辑的表格


Posted in Javascript onDecember 11, 2019

本文实例为大家分享了Vue.js实现可编辑的表格的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html>
<head>
 <title></title>
 <link rel="stylesheet" type="text/css" href="bootstrap.min.css" >
 <style type="text/css">
   table tr td{
   text-align: center;
   }
  .btn-info{
   margin-left: 5px;
  }

  .add,.addBox{
   margin: 10px 0px 10px 10px;
  }
  .submit{
   margin-left: 172px;
  }
  /*全删*/
  .delAll{
   margin-left: 10px;
  }
  /*新增*/
  fieldset{
   margin-left: 10px;
  }
 </style>
</head>
<body>

<div id="app">
<button class="btn btn-primary btn-sm addBox" @click="addBox">添加</button>
<button class="btn btn-sm btn-danger delAll" @click="delAll">批量删除</button>
 <table class="table table-bordered" >
 <thead>
 <tr>
  <td><input type="checkbox" @click="allSelect" v-model="checked"></td>
  <td>学号</td>
  <td>姓名</td>
  <td>年纪</td>
  <td>操作</td>

 </tr>
 </thead>
 <tbody>
  <tr v-for="person,index in people">
  <td><input type="checkbox" v-model="selected" v-bind:value="person.sid"></td>
  <td @click="edit(index)" contenteditable="true">{{person.sid}}</td>
  <td @click="edit(index)" contenteditable="true">{{person.sname}}</td>
  <td @click="edit(index)" contenteditable="true">{{person.sage}}</td>
  <td><button @click="del(index)" class="btn btn-danger btn-sm">删除</button><button @click="update(index)" class="btn btn-info btn-sm">编辑</button></td>
  </tr>
 </tbody>

 </table>

<fieldset v-show="seen" >
 <legend>新增用户</legend>
 <div class="">
 <p>
  <label>学号:</label>
  <input type="text" v-model="newPeople.sid">
 </p>
 <p>
  <label>姓名:</label>
  <input type="text" v-model="newPeople.sname">
 </p>
 <p>
  <label>年龄:</label>
  <input type="number" v-model="newPeople.sage">
 </p>
 <p>
  <button class="btn btn-success btn-sm submit" @click="add">提交</button>
 </p>
</div>


</fieldset> 
<!-- 编辑界面 -->
<fieldset v-show="editSeen">
 <legend>编辑用户</legend>


<div class="">
 <p>
  <label>学号:</label>
  <input type="text" v-model="editPeople.sid" value="{{sid}}">
 </p>
 <p>
  <label>姓名:</label>
  <input type="text" v-model="editPeople.sname" value="{{sname}}">
 </p>
 <p>
  <label>年龄:</label>
  <input type="number" v-model="editPeople.sage" value="{{sage}}">
 </p>
 <p>
  <button class="btn btn-success btn-sm submit" @click="editSubmit">提交</button>
 </p>
</div>
</fieldset> 
</div>


 <script type="text/javascript" src="vue.min.js"></script>
 <script type="text/javascript">
 var data ={
    people:[ 
     {'sid':'1043','sname':'张三','sage':18}, 
     {'sid':'2434','sname':'赵六','sage':43}, 
     {'sid':'3424','sname':'李四','sage':42}, 
     {'sid':'1231','sname':'王五','sage':35} 
    ],
    newPeople:{
     'sid':'','sname':'','sage':''
    },
    seen:false,
    editSeen:false,
    checked:false,
    selected:[],
    editPeople:{
     'sid':'','sname':'','sage':''
    }

   } ;
  var app = new Vue({
  'el':'#app',
   data:data,

   methods:{
   // 添加
   addBox:function(){
    this.seen = this.seen == false ? true : false;
   },
   //删除
   del:function(index){
    console.log(11);
    this.people.splice(index,1);
   },
   //提交
   add:function(){
     //插入到people中
     this.people.push(this.newPeople);

     this.newPeople = {};
     this.seen = false
   },
   //全选
   allSelect:function(){
    if(this.selected.length != this.people.length){
     this.selected = [];
     for(var i = 0; i<this.people.length;i++){
      this.selected.push(this.people[i].sid);
      console.log(this.people[i].sid);

     }

    }else{
     this.selected = [];
    }

   },
   //批量删除
   delAll:function(){
    for(var j = 0; j< this.selected.length;j++){
     for(var i = 0; i< this.people.length; i++){ 
      if(this.selected[j] == this.people[i].sid){
       this.people.splice(i,1);
      }
     }
    }

   },
    //编辑
    update:function(index){
    this.editSeen = true;
     this.editPeople = this.people[index];



    },
    //编辑后提交
    editSubmit:function(){
    this.editSeen = false;

    }

   },
   watch:{
   "selected":function(){
    if(this.selected.length == this.people.length){
     this.checked = true;
    }else{
     this.checked = false;
    }
   }
   }
  })
 </script>
</body>
</html>

Vue.js实现可编辑的表格

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery操作select的实例代码
Jun 14 Javascript
获取客户端电脑日期时间js代码(jquery)
Sep 12 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
Feb 26 Javascript
JQuery判断子iframe何时加载完成解决方案
Aug 20 Javascript
JS随机漂浮广告代码具体实例
Nov 19 Javascript
调整小数的格式保留小数点后两位
May 14 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
Jun 29 Javascript
JavaScript中解析JSON数据的三种方法
Jul 03 Javascript
jQuery基于cookie实现的购物车实例分析
Dec 24 Javascript
node.js中express中间件body-parser的介绍与用法详解
May 23 Javascript
angular 实现同步验证器跨字段验证的方法
Apr 11 Javascript
JS高级程序设计之class继承重点详解
Jul 07 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
Dec 11 #Javascript
用JS实现一个简单的打砖块游戏
Dec 11 #Javascript
js消除图片小游戏代码
Dec 11 #Javascript
详解vue中$nextTick和$forceUpdate的用法
Dec 11 #Javascript
基于jQuery实现可编辑的表格
Dec 11 #jQuery
jQuery实现可编辑的表格
Dec 11 #jQuery
vue element自定义表单验证请求后端接口验证
Dec 11 #Javascript
You might like
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
基于jquery的button默认enter事件(回车事件)。
2011/05/18 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
2013/12/18 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
JavaScript函数的4种调用方法详解
2014/04/22 Javascript
jQuery选择器源码解读(七):elementMatcher函数
2015/03/31 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
2016/10/13 Javascript
js实现表单提交后不重新刷新当前页面
2016/11/30 Javascript
javascript数组去重方法分析
2016/12/15 Javascript
Easyui笔记2:实现datagrid多行删除的示例代码
2017/01/14 Javascript
JavaScript轻松创建级联函数的方法示例
2017/02/10 Javascript
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
2018/08/07 Javascript
Vue指令指令大全
2019/02/09 Javascript
layui操作列按钮个数和文字颜色的判断实例
2019/09/11 Javascript
Python代码调试的几种方法总结
2015/04/15 Python
Python常见排序操作示例【字典、列表、指定元素等】
2018/08/15 Python
Python实现提取XML内容并保存到Excel中的方法
2018/09/01 Python
python实现大文件分割与合并
2019/07/22 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
2020/01/20 Python
python可视化text()函数使用详解
2020/02/11 Python
python中zip()函数遍历多个列表方法
2021/02/18 Python
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
外企C语言笔试题
2013/11/10 面试题
工程造价专业大学生职业生涯规划书
2014/01/18 职场文书
爱心捐款倡议书范文
2014/05/12 职场文书
2014新生大学四年计划书
2014/09/21 职场文书
怎么写工作检讨书
2014/11/16 职场文书
2014年采购部工作总结
2014/11/20 职场文书
公司文体活动总结
2015/05/07 职场文书
比赛主持人开场白
2015/05/29 职场文书
商场广播稿范文
2015/08/19 职场文书
AJAX学习笔记
2021/05/18 Javascript
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis
一次项目中Thinkphp绕过禁用函数的实战记录
2021/11/17 PHP
MySQL 外连接语法之 OUTER JOIN
2022/04/09 MySQL