vue+iview 实现v-for循环出来的多表单验证

本文介绍了如何在Vue+IView框架下使用v-for循环来实现多表单的验证。首先展示了单个表单验证的基本方法,然后详细解释了在循环中动态绑定表单验证规则,并在`handleSubmit`方法中遍历每个表单进行验证,通过数组判断所有表单是否都通过验证,从而实现多表单的全部验证功能。
摘要由CSDN通过智能技术生成

vue+iview 实现v-for循环出来的多表单验证
单个表单验证就不多赘述了,很简单,方法如下

 <Form ref="formValidate" :model="formList" :rules="rulesValidate">  
 ......
 </Form>
 
 export default {
 data(){
        return{
        	formList:{
	          username: '',
	          password: ''
	        },
	         rulesValidate: {
	          username: [{required: true, message: '账号不能为空', trigger: 'blur'}],
	          password: [{required: true, message: '密码不能为空', trigger: 'blur'}]
	        }
        }
  },
  methods: {
  	handleSubmit(){
   		this.$refs['formValidate'].validate((valid) => {
            if (valid) {
            	//验证通过
            }
        })
	}
  }
 }

那么用v-for循环实现的多表单的验证方法如何实现呢,具体实现方法如下

<div  v-for="(pItem,pIndex) in formList" :key="'pi' + pIndex" style="margin:5px 0;">
	<Form :ref="'formValidate' + pIndex" :model="pItem" :rules="rulesValidate">
	......
	</Form>
</div>

export default {
  data(){
        return{
        	formList:[
        		{name:'',age:''},
        		{name:'',age:''},
        		{name:'',age:''}
        	],
        	rulesValidate: {
	          name: [{required: true, message: '姓名不能为空', trigger: 'blur'}],
	          age: [{required: true, message: '年龄不能为空', trigger: 'blur'}]
	        }
        }
  },
  methods: {
  	handleSubmit(){
  		this.formList.forEach((item, index) => {
         let form = 'formValidate' + index;
         this.$refs[form][0].validate((valid) => {
           if (valid) {
             arr.push(true);
           } else {
             arr.push(false);
           }
         });
       });
       let flag = arr.every((item) => {
         return item === true;
       });
       if(flag){//全部为true,验证通过
         //验证通过
       }else{
         this.$Message.error('信息填写有误');
         return false;
       }
	}
  }
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值