vue+element form表单中el-form动态验证

form表单有验证规则,很多数据可能是数组动态生成的,如果为动态生成,就不能使用静态了。

首先需要注意的就是prop和rules这两个参数

代码附上:

<el-form
    ref="formData"
    :model="formData"
    label-width="90px"
    
>
    <el-row>
    <el-col :span="12" v-for="(item,index) in formData.tokensList" :key="index">
        <el-form-item :label="item.symbol + ':'" :prop="'tokensList['+index+'].balance'" :rules="rules.Num">
        <el-input
        v-model="item.balance"
        type="text"
        placeholder="请输入余额"
        clearable
        size="medium"
        ></el-input> 
        </el-form-item>
    </el-col>
    </el-row>
    
</el-form>

在代码中可以体现prop必须精准对应你需要验证的字段,这里balance是我需精准验证的字段,还需要注意的就是prop绑定的时候一定要从你自己for循环下的对象,不然会出现报错的情况。

rules可以自己在data中任意定义,也可以直接写在标签中,这里因为我需要判断好几层,就直接定义了

export default {
data() {
    const validateNum = (rule, value, callback) => {
        let reg = /^\d+(?=\.{0,1}\d+$|$)/
        if (!value) {
            callback(new Error('请输入余额'));
        } else if(!reg.test(value)){
            callback(new Error('请输入数字'));
        }else{
            callback();
        }
    };
    return {
    show: false,
    formData: {
        tokensList: [],
    },
    rules: {
        Num: [
            { required: true, validator: validateNum, trigger: 'blur' },
        ],
    },
    };
},

最后效果:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值