element-ui--表单校验

 el-form-item绑定的prop必须和该item下的表单元素绑定的v-model值的名称一致。
 
1.实现对一个表单进行两套或以上的验证
花了一点时间摸索,我想:如果不像官方给的那样,rules="rules",然后在data下设置rules的值,而是把rules绑定一个函数,这个函数在computed计算属性中,根据不同的条件设置不同的验证方法不就可以了?自己尝试了一下,真的成功了,代码如下:
<el-form class="dialog-body" :rules="rulesList" :model="temp">
<!--这里为表单内容-->
</el-form>
 
<script>
export default {
  data() {
    return {
      rules: {
        pay_type: [
          { required: true, message: '不能为空', trigger: 'change' }
        ],
      },
      rules2: {
        pay_type: [
          { required: true, message: '不能为空', trigger: 'change' }
        ]
      },
    }
  },
computed: {
    rulesList: function() {
      if (this.temp.pay_type) {
        return this.rules
      } else {
        return this.rules2
      }
    }
  }
 
2.自定义的规则
data() {
    const validatePass = (rule, value, callback) => {
      if (this.option) {
        callback(new Error('请选择列表中已有的选项'))
      } else {
        callback()
      }
    }
    return {
        rules: {
            firstContract: [
              { required: true, message: '不能为空', trigger: ['blur', 'change'] },
              { required: true, trigger: 'blur', validator: validatePass }
            ],
        }
    }
}

 

 

posted @ 2020-11-28 14:02  盲仔不瞎忙  阅读(237)  评论(0编辑  收藏  举报