html表格嵌套文本框,vue2.0+Element UI 实现动态表单(点击按钮增删表格及嵌套输入框的增删)...

动态实现表单的行增减删除,先看下效果

678fe57e854fb4ab5604fd992ce66508.png如图,点击添加按钮行数下方会新增一行表格,点击删除会删除相应行的表格,表格行内嵌套了input输入框

最近刚写了这个项目,所以我们一切以后端请求接口返回数据为例

代码实现

我们这个功能是点击跳出的弹框

选项

分值

+ -

取 消

保 存

复制代码

增加删除行的方法

export default {

data() {

return {

dialogBindData: {

tbAssessItems:[],

tbAssessLevels:{

assessFormId:""

}

},

selectlistRow: [],

rowNum: 1,

}

},

methods: {

// 增加行

addRow() {

var tablelist = {

rowNum: this.dialogBindData.tbAssessItems.length+1,

tbAssessDetails: [

{

score: '',

detailInstructions: ''

},

{

score: '',

detailInstructions: ''

}

],

itemName: '',

itemInstructions: ''

}

this.dialogBindData.tbAssessItems.push(tablelist)

},

// 删除方法

// 删除选中行

delData() {

if(this.dialogBindData.tbAssessItems.length <=1){

console.log("不允许删除")

}else{

for (let i = 0; i 

const val = this.selectlistRow

// 获取选中行的索引的方法

// 遍历表格中tableData数据和选中的val数据,比较它们的rowNum,相等则输出选中行的索引

// rowNum的作用主要是为了让每一行有一个唯一的数据,方便比较,可以根据个人的开发需求从后台传入特定的数据

val.forEach((val, index) => {

this.dialogBindData.tbAssessItems.forEach((v, i) => {

if (val.rowNum === v.rowNum) {

// i 为选中的索引

this.dialogBindData.tbAssessItems.splice(i, 1)

}

})

})

}

// 删除完数据之后清除勾选框

this.$refs.table.clearSelection()

}

},

// 增加分值及分值说明

addinput(index, inputIndex) {

const cope = {

score: '',

detailInstructions: ''

}

this.dialogBindData.tbAssessItems[index].tbAssessDetails.push(cope)

},

del(index,inputIndex) {

// console.log(inputIndex)

if( this.dialogBindData.tbAssessItems[index].tbAssessDetails.length <=2){

console.log("不允许删除")

}else{

this.dialogBindData.tbAssessItems[index].tbAssessDetails.splice(inputIndex, 1)

}

},

},

}

复制代码

值得注意的是:

新增行的时候要添加rowNum行数,

行数的增加就是this.dialogBindData.tbAssessItems.length+1,不然就会在删除的时候,删除不准确;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值