el-form动态检验无法生效问题(已解决)

要对el-form里面的字段动态生成校验规则,测试了一系列的骚操作也无法生效,要么是require视图生效了,校验规则还是不生效;看了csdn里面好多方案,都是废话,废话,直接上硬货,最终总结如下:

javascript 复制代码
         <el-form :rules="rules" ref="auditForm" :model="auditForm" label-width="100px">
            <el-form-item label="审核结果:" prop="auditStatus">
              <el-radio-group v-model="auditForm.auditStatus" @change="updateFormRules">
                <el-radio label="Y">通过</el-radio>
                <el-radio label="N">不通过</el-radio>
              </el-radio-group>
            </el-form-item>
            <el-form-item label="审核意见:" prop="remark">
              <el-input
                v-model="auditForm.remark"
                placeholder="请输入"
                type="textarea"
                :rows="2"
                clearable
                maxlength="200"
                show-word-limit
              />
            </el-form-item>
          </el-form>

需求描述:选择审核结果为"N",不通过时,审核意见为必填,否则为不必填。

原本的rules里面不必去填写审核意见的校验

javascript 复制代码
     rules: {
        auditStatus: [{ required: true, message: '请选择', trigger: 'blur' }]
      },

方案一:监听审核结果的change事件,去动态增加审核意见的规则

方案二:使用watch去监听审核结果的值,去动态增加审核意见的规则

javascript 复制代码
    updateFormRules () {
      if (this.auditForm.auditStatus === 'N') {
        this.$set(this.rules, 'remark', [
          { required: true, message: '请输入审核意见', trigger: 'blur' },
          { min: 3, max: 200, message: '长度在 3 到 200 个字符', trigger: 'blur' }
        ]);
      } else {
        this.$set(this.rules, 'remark', []);
      }
      this.$nextTick(() => {
        this.$refs.auditForm.clearValidate(); // 清除表单验证规则
        this.$refs.auditForm.validate(); // 重新验证表单
      });
    },```
    
相关推荐
恋猫de小郭3 小时前
Flutter 正在计划提供 Packaged AI Assets 的支持,让你的包/插件可以更好被 AI 理解和选择
android·前端·flutter
小小前端--可笑可笑3 小时前
Vue / React 单页应用刷新 /login 无法访问问题分析
运维·前端·javascript·vue.js·nginx·react.js
小林敲代码77883 小时前
记一次 Vue 项目首屏优化:从 7.1s 到 0.9s,深挖 Gzip 的力量
前端·javascript·vue.js
前端大卫3 小时前
写给年轻程序员的几点小建议
前端
Highcharts.js4 小时前
什么是向量图表?如何用 Highcharts 快速创建一个笛卡尔坐标图/矢量图?
javascript·开发文档·highcharts·图表开发·向量图·矢量图表·笛卡尔坐标图
NEXT064 小时前
React 闭包陷阱深度解析:从词法作用域到快照渲染
前端·react.js·面试
脱离语言5 小时前
Jeecg3.8.2 前端经验汇总
开发语言·前端·javascript
NEXT065 小时前
useMemo 与 useCallback 的原理与最佳实践
前端·javascript·react.js
小爱丨同学5 小时前
React-Context用法汇总 +注意点
前端·javascript·react.js
徐同保6 小时前
python如何手动抛出异常
java·前端·python