vue动态添加表单并验证

    Vue中的表单验证很简单,但若是动态添加的表单,如通过v-for循环出来的动态表单,就需要想额外的办法了。

    查找资料,一篇文章写的很详细,原文在这里。但我按照文章里的步骤做完之后,怎么都不生效。最后检查了很久才发现是一个地方的配置写错了位置。由于配置的地方比较多,可能会有不少和我一样马虎的盆友会写错,所以在这里重点标注一下需要注意的地方。

    红色框是需要配置的部分,蓝色圈和绿色圈是分别对应的。部分代码如下:

 <el-form :model="dataForm" :rules="rules" ref="dataForm" label-width="150px" class="data-form">
      <div v-for="(item,i) in dataForm.cardArr" :key="i">
        <el-form-item label="充值金额:" :prop="`cardArr.${i}.charge`" :rules="cardRules.charge">
          <el-input v-model.trim="item.charge" placeholder="请输入充值金额"></el-input>
        </el-form-item>
      </div>
 </el-form>

数据部分配置如下,蓝色与绿色部分,分别与上面的蓝色与绿色对应。

    所有的配置项层级和位置都不能放错,否则就没有效果咯。数据部分代码如下:

 data () {
    //正整数
    var checknumber = (rule, value, callback) => {
      var reg = /^[\d]+$/;
      if(value&&!reg.test(value)) {
        callback(new Error('请输入不小于0的整数'));
      } else if(value > 9999999) {
        callback(new Error('请输入不超过9999999的整数'));
      } else {
        callback()
      }
    };
    return {
      dataForm: {
        cardArr:[]
      },
      rules: {
      },
      cardRules: {
        charge: [{
          required: true,
          message: '请输入充值金额',
          trigger: 'blur'
        },{
          validator:checknumber,
          trigger: 'blur'
        }]
      }
    }
  }

    

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值