自定义校验规则:
data() { const validElement = (rule, value, callback) => { let notEmpty = false this.dataForm.element.map((item) => { if(item.allow_empty === 0) { notEmpty = true } }) if(this.dataForm.element.length === 0) { callback('请添加表单字段') } else if(!notEmpty) { callback('请为表单设置至少一个必填项') } else { callback() } } return { rules: {element: [{ trigger: 'change', validator: validElement }]} } }有些东西的组件不是单纯的输入框或者单选,而是一些div,无法通过blur或者change触发到,所以需要手动触发某一条:
this.$refs['dataForm'].validateField('element')