vue Element ui 多复选框取值赋值

前言:业务需求同时需要传给后台id和name,虽说不理解,但是需求提了就要做。

思路:先想到的就是拼接字符串方式,以逗号隔开绑定到label上

取值:在向后台接口发送数据时,拆分成各字段所需要的值给接口

赋值:接收后台数据,将各自值拼接回字符串给新数组,组合成新的数组,绑定到data内

具体代码如下:

html:

<el-checkbox-group v-model="dataForm">
    <el-checkbox
       v-for="(item, i) in list"
       :key="i"
       :disabled="disabled"
       :label="item.id + ',' + item.name"
       name="type"
     >{{item.name}}</el-checkbox>
</el-checkbox-group>

js

// 初始化数据
data () {
    return {
        // 因为是多个复选框,所以我们会得到一个数组
        dataForm: [],
        list: [
            {
                id:0,
                name:'苹果'
            },
            {
                id:1,
                name:'香蕉'
            }
        ]
    }
}

// 取值, 对数组拆分,取出对应字段参数
let idArr = []
let nameArr = []
this.dataForm.forEach(item => {
    let arr = item.split(',')
    idArr.push(arr[0])
    nameArr.push(arr[1])
})

//传给后台数据
let parameter = {
    id: idArr,
    name: nameArr
}

// 赋值,将保存的复选框勾选上
let newArr = [] // 新的数组
id.forEach(item => {
    name.forEach(items => {
       newArr.push(item + ',' + items)
    })
})
this.dataForm= newArr

emmmmm,赋值哪里弄了好一会记录一下,有更好的解决方案欢迎点评。

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值