当前位置: 首页 > article >正文

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> 
 rules: {
        xxx: [
          {
            required: true,
            message: '请选择',
            trigger: 'change',
          },
        ],

        xxx: [
          {
            required: true,
            message: '请选择',
            trigger: 'blur',
          },
        ],
        xxx: [
          {
            required: true,
            message: '请输入',
            trigger: 'blur',
          },
        ],
      },
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
        }
      }
}

更新~
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>

http://www.kler.cn/a/104046.html

相关文章:

  • Power BI 傻瓜入门 3. 选择Power BI的版本
  • 从0开始在Vscode中搭建Vue2/3项目详细步骤
  • MySQL数据库 #4
  • 【网络爬虫 | Python】数字货币ok链上bitcoin大额交易实时爬取,存入 mysql 数据库
  • 外部中断1电平触发
  • H3C SecParh堡垒机 get_detail_view.php 任意用户登录漏洞
  • react的setState做了什么
  • html- a标签包裹img标签, 点击图片无法跳转问题记录及解决方法
  • 程序员想要网上接单却不知道如何是好?那这篇文章你可得收藏好了!
  • Go 工具链详解(六):依赖管理神器
  • Python容器和可迭代对象
  • Postman环境配置
  • Linux多线程服务端编程:使用muduo C++网络库 学习笔记 第三章 多线程服务器的适用场合与常用编程模型
  • 37 深度学习(一):查看自己显卡的指令|张量|验证集|分类问题|回归问题
  • Flink学习笔记(四):Flink 四大基石之 Window 和 Time
  • 华为手机的钱包里没有门钥匙要怎样弄
  • React介绍
  • 包管理工具
  • 微信h5支付配置,商家存在未配置的参数,请联系商家解决
  • 【Gensim概念】03/3 NLP玩转 word2vec