element ui表格表单自定义校验

近期开发中遇到了element ui 表格自定义校验的问题,查了一些资料没有合适的,最后自己试试实现了,如图


image.png

网上查了很多表格校验的,但是都不是自定义校验,需要保证设置促销价大于0小于原价,这时需要校验时拿到每一行的数据来对比

 
   
          
          
          
          
          
          
          
          
          
          
          
          
          
            
          
          
            
          
          
            
          
          
            
          
          
            
          
        
      

促销校验对象

 ruleCustom: {
          discountPrice: [
            {validator: validatePass, trigger: 'change'}
          ]
        },
 const validatePass = (rule, value, callback) => {
 console.log(rule.field)
        let ruleIndex = rule.field.split('.')[1]
        console.log(ruleIndex, this.formValidate.selectList1)
        if (this.formValidate.selectList1[ruleIndex].salePrice < value || value < 0) {
          callback(new Error('价格设置有误'))
        } else {
          callback()
        }
      }

这个的关键就是促销价的props 传 :prop='selectList1.${scope.$index}.discountPrice'
这个在校验方法validatePass会拿到rule.field如图打印的,然后截取到index,进而拿到该商品价格并比较校验

image.png

你可能感兴趣的:(element ui表格表单自定义校验)