• el-form动态检验rules


    需求:某个字段的下拉框根据选择的值,动态控制必填项是否必填

    1、js中控制

    <el-form ref="form" :rules="rules" :model="form" :show-message="false" style="padding: 0px" label-width="160px">
                    <el-row class="row-change-label">
                      <el-col :span="12" :xs="24" >
                        <el-form-item label="xx" prop="xxx" class="ast-class input-dialog">
                          <el-input v-model="form.xxx" readonly placeholder="点击选择" />
                        </el-form-item>
                      </el-col>
                      <el-col :span="12" :xs="24" >
                        <el-form-item label="xxx" prop="xx" class="item-disabled">
                          <el-select v-model="form.xxx" placeholder="" @change="changeType" >
                            <el-option v-for="dict in selectDatas.applyType" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
                          </el-select>
                        </el-form-item>
                      </el-col>
    
                      <el-col :span="12" :xs="24" v-if="applyType == '1'" class="remove-borderBtm">
                        <el-form-item label="xxx" prop="rentType">
                          <el-select v-model="form.xxx"  placeholder="请选择xxx" clearable>
                            <el-option v-for="dict in selectDatas.rentType" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
                          </el-select>
                        </el-form-item>
                      </el-col>      
                      </el-row>
                  </el-form> 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
     rules: {
            xxx: [
              {
                required: true,
                message: '请选择',
                trigger: 'change',
              },
            ],
    
            xxx: [
              {
                required: true,
                message: '请选择',
                trigger: 'blur',
              },
            ],
            xxx: [
              {
                required: true,
                message: '请输入',
                trigger: 'blur',
              },
            ],
          },
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    changeType(value){
     if (value == 1) {
            for (let key in this.rules) {      
                this.rules[key][0].required = false      
            }
          } else {
            for (let key in this.rules) {
              this.rules[key][0].required = true
            }
          }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    更新~
    2、在模板区动态控制必填项是否必填

          <el-form-item
                                    class="input-dialog"
                                    :prop="'tableData.' + rowIndex + '.xxx'"
                                    :key="'tableData.' + rowIndex + '.xxx'"
                                    :rules="
                                      row.yyy
                                        ? (rules.xxx= [{ required: true, message: '不能为空', trigger: 'blur' }])
                                        : (rules.xxx= [])
                                    "
                                  >
                                    <EditRemarkInput
                                      v-model="row.xxx"                               
                                    ></EditRemarkInput>
                                  </el-form-item>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 相关阅读:
    【深度学习】Beam Search原理和实现、闲聊机器人优化
    锐捷交换机(RG-2328G)重置密码,并保存以前配置
    IMX6ULL学习笔记(7)——通过SD卡启动U-Boot
    餐饮供应链管理系统
    GDB调试工具
    【Python基础知识】(18)集合(Set)
    G - Card Game
    数据库随堂笔记(6)ᝰ数据库设计
    【Python项目】Python基于tkinter实现一个笔趣阁小说下载器 | 附源码
    软件的生命周期(软件工程各阶段的工作)
  • 原文地址:https://blog.csdn.net/weixin_49668076/article/details/133995538