Vue.js實現(xiàn)可編輯的表格
更新時間:2019年12月11日 14:50:13 作者:jimjiayu
這篇文章主要為大家詳細介紹了Vue.js實現(xiàn)可編輯的表格,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了Vue.js實現(xiàn)可編輯的表格的具體代碼,供大家參考,具體內(nèi)容如下
<!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>學(xué)號</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>學(xué)號:</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>學(xué)號:</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>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue.js 中取得后臺原生HTML字符串 原樣顯示問題的解決方法
這篇文章主要介紹了VUE.js 中取得后臺原生HTML字符串 原樣顯示問題 ,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2018-06-06vue中的任務(wù)隊列和異步更新策略(任務(wù)隊列,微任務(wù),宏任務(wù))
這篇文章主要介紹了vue中的任務(wù)隊列和異步更新策略(任務(wù)隊列,微任務(wù),宏任務(wù)),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08vue?eslint報錯error?"Component?name?"*****"
這篇文章主要給大家介紹了關(guān)于vue?eslint報錯error?“Component?name?“*****“?should?always?be?multi-word”的解決方法,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下2022-09-09Vue.js中用webpack合并打包多個組件并實現(xiàn)按需加載
對于現(xiàn)在前端插件的頻繁更新,我也是無力吐槽,但是既然入了前端的坑就得認嘛,所以多多少少要對組件化有點了解,下面這篇文章主要給大家介紹了在Vue.js中用webpack合并打包多個組件并實現(xiàn)按需加載的相關(guān)資料,需要的朋友可以參考下。2017-02-02vue項目中使用particles實現(xiàn)粒子背景效果及遇到的坑(按鈕沒有點擊響應(yīng))
為了提高頁面展示效果,登錄界面內(nèi)容比較單一的,粒子效果作為背景經(jīng)常使用到,vue工程中利用vue-particles可以很簡單的實現(xiàn)頁面的粒子背景效果,本文給大家分享在實現(xiàn)過程中遇到問題,需要的朋友一起看看吧2020-02-02vue循環(huán)中點擊選中再點擊取消(單選)的實現(xiàn)
這篇文章主要介紹了vue循環(huán)中點擊選中再點擊取消(單選)的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09