vue3.0 element plus表格循环出的输入框进行校验(setup语法糖)

41 篇文章 3 订阅
7 篇文章 0 订阅
本文介绍如何在Vue的el-table组件中,针对循环生成的输入框进行数据校验。通过使用el-form和el-form-item结合自定义校验规则实现对表格内价格字段的验证,确保价格不为空且大于零。示例代码展示了具体的实现方式,包括表单引用、校验规则定义、表格数据及表单提交时的校验逻辑。
摘要由CSDN通过智能技术生成
<template>
  <div class="mg-1em pd-1em bg-color">
    <h1>el-table表格循环的输入框如何进行校验</h1>
    <div class="form">
      <el-form ref="formTableRef" :model="formTable" :rules="rules" :inline="true">
        <el-table :data="formTable.tableData" border style="width: 100%">
          <el-table-column prop="date" label="日期" align="center"></el-table-column>
          <el-table-column prop="name" label="姓名" align="center"></el-table-column>
          <el-table-column prop="address" label="地址" align="center"></el-table-column>
          <el-table-column label="价格" align="center">
            <template #default="{ row, $index }">
              <el-form-item :prop="`tableData[${$index}].purchaseNum`" :rules="rules.purchaseNum" :label-width="1">
                <el-input v-model="row.purchaseNum">
                  <template #suffix>
                    <span></span>
                  </template>
                </el-input>
              </el-form-item>
            </template>
          </el-table-column>
        </el-table>
      </el-form>
    </div>
    <div class="btn">
      <el-button type="primary" @click="handleSubmit">提交</el-button>
    </div>
  </div>
</template>
<script setup>
import { ref } from 'vue'
//这里面是引入共工的自定义校验的方法,没有可以删除
import { verifyGreaterThanZero } from '@/utils/validate'

// 表单form
const formTableRef = ref()

//校验规则
const rules = {
  purchaseNum: [
    {
      required: true,
      message: '价格不能为空',
      trigger: 'blur',
    },
    { validator: verifyGreaterThanZero, trigger: 'blur' },//自定义校验
  ],
}

// 表格数据
const formTable = ref({
  tableData: [
    {
      date: '2016-05-02',
      name: '王小虎',
      address: '上海市普陀区金沙江路 1518 弄',
    },
    {
      date: '2016-05-04',
      name: '王小虎',
      address: '上海市普陀区金沙江路 1517 弄',
    },
    {
      date: '2016-05-01',
      name: '王小虎',
      address: '上海市普陀区金沙江路 1519 弄',
    },
    {
      date: '2016-05-03',
      name: '王小虎',
      address: '上海市普陀区金沙江路 1516 弄',
    },
  ],
})

// 表单提交校验
function handleSubmit() {
  formTableRef.value.validate((valid) => {
    if (valid) {
      alert('校验通过')
    }
  })
}
</script>

效果图(代码可复制查看效果)安装element plus 和vue版本在3以上

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值