在el-table中循环表单并验证

最近有一个需求,在table中添加一组数据,table的行中增加一组input框并进行校验

自己钻了一个牛角尖,没搞清楚数据类型格式,最后在同事的帮助下,写出了该表格,记录下来备用~

页面布局:

将input根据el-table的lable的个数进行循环,input双向绑定的值以索引值为参数 scope.row[index] 可以使值独立不重复(在这里走了好多坑~没想到怎么设置父元素的数据格式)

<el-form label-width = "85px" :model = "addData" :rules = "rules" ref = "addData">
    <el-table :data = "addData.paramslist" id = "noData">
              <el-table-column :label = "item" v-for = "(item,index) in paramsName" :key = "index">
                <template slot-scope = "scope">
                  <el-form-item
                    class = "noML"
                    :key = "scope.row.key"
                    :prop = "'paramslist.' + scope.$index + '.'+index"
                    :rules = "{required: true, message: '值不能为空', trigger: 'blur'}">
                    <el-input size = "mini" v-model = "scope.row[index]"></el-input>
                  </el-form-item>
                </template>
              </el-table-column>
            </el-table>
</el-form>

data数据定义的格式

addData: {
          paramsName: ['第一组', '第二组'],
          paramslist: [['']],
        },

点击添加一组数据

addParams () {
        let newArr = [], id = '', params = [], paramsListArr = []
         params = this.paramsName
         paramsListArr = this.addData.paramslist
        for (let i = 0; i < params.length; i++) {
          newArr.push(id)
        }
        paramsListArr.push(newArr)
      },

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
el-table是Element UI的一个格组件,它提供了丰富的功能和选项,包括验证。在el-table进行验证可以通过自定义校验规则来实现。 下面是一个示例代码,演示了如何在el-table进行验证: ```html <template> <el-table :data="tableData" style="width: 100%"> <el-table-column prop="name" label="姓名"> <template slot-scope="scope"> <el-form-item :rules="[{ required: true, message: '请输入姓名', trigger: 'blur' }]"> <el-input v-model="scope.row.name"></el-input> </el-form-item> </template> </el-table-column> <el-table-column prop="age" label="年龄"> <template slot-scope="scope"> <el-form-item :rules="[{ required: true, message: '请输入年龄', trigger: 'blur' }, { type: 'number', message: '年龄必须为数字值' }]"> <el-input-number v-model="scope.row.age"></el-input-number> </el-form-item> </template> </el-table-column> </el-table> </template> <script> export default { data() { return { tableData: [ { name: '张三', age: 18 }, { name: '李四', age: 20 }, { name: '王五', age: '' } ] }; } }; </script> ``` 在上述代码,我们使用了el-form-item组件来包裹el-input和el-input-number组件,并通过:rules属性设置了校验规则。其,required为必填规则,message为提示信息,trigger为触发校验的事件。另外,我们还使用了type为number的校验规则,确保年龄字段为数字值。 请注意,上述代码只是一个简单的示例,实际的验证规则可能更加复杂。你可以根据自己的需求进行修改和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值