element ui form表单动态prop规则校验问题

27 篇文章 0 订阅

应用场景如图:

选择第三方平台右侧计费规则非必选 

  选择手动配置,右侧计费规则必选

解决方案

1. rules校验规则

stationFeeType: [{
          required: true,
          message: '请选择计费配置方式',
          trigger: 'change'
        }]

 2. prop动态,notEmpty随意定义的,prop不能为空

<el-form-item label="计费规则" :prop="formInline.stationFeeType === 0 ? 'elecFeeId' : 'notEmpty'" >
              <el-select  v-model.trim="formInline.elecFeeId"
                          style="width: 260px"
                          filterable
                          placeholder="请选择" >
                <el-option :label="operation.elecFeeName"
                              :value="operation.elecFeeId"
                              :key="operation.elecFeeId"
                              v-for="operation in elecFeeList"></el-option>
              </el-select>
            </el-form-item>

3. 切换配置方式到第三方,右侧校验提示未消失

执行清除校验提示方法,参数为prop值

this.$refs.form1.clearValidate('elecFeeId');

 

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Element UI 是一个基于 Vue.js 的前端组件库,其中包含了校验功能。可以通过在元素上设置 "rules" 属性来实现校验。例如: ``` <el-form ref="form" :rules="rules" > <el-form-item label="用户名" prop="username"> <el-input v-model="form.username" placeholder="请输入用户名"></el-input> </el-form-item> <el-form-item label="密码" prop="password"> <el-input v-model="form.password" placeholder="请输入密码"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm('form')">提交</el-button> </el-form-item> </el-form> ``` 其中 rules 是一个数组,里面包含了校验规则对象,例如: ``` data() { return { form: { username: '', password: '' }, rules: { username: [ { required: true, message: '请输入用户名', trigger: 'blur' }, { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' } ], password: [ { required: true, message: '请输入密码', trigger: 'blur' }, { min: 6, max: 10, message: '长度在 6 到 10 个字符', trigger: 'blur' } ] } } }, ``` 然后提交时调用 this.$refs.form.validate() 方法进行校验,如果校验失败会返回一个 false,可以根据返回值来判断是否通过校验。 ``` methods: { submitForm(formName) { this.$refs[formName].validate((valid) => { if (valid) { alert('submit!'); } else { console.log('error submit!!'); return false; } });Element UI 是一个基于 Vue.js 的前端 UI 组件库,它提供了一组丰富的组件,可以方便地进行校验。通常可以使用其中的 el-form 和 el-form-item 组件进行校验。可以在 el-form 上设置 rules 属性来配置校验规则,在 el-form-item 上设置 prop 属性来指定其对应的字段。例如: ``` <el-form ref="form" :rules="rules" v-model="formData"> <el-form-item label="用户名" prop="username"> <el-input v-model="formData.username"></el-input> </el-form-item> <el-form-item label="密码" prop="password"> <el-input v-model="formData.password"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm">提交</el-button> </el-form-item> </el-form> ``` 然后在data 中的 rules 设置校验规则: ``` data() { return { formData: { username: '', password: '' }, rules: { username: [ { required: true, message: '请输入用户名', trigger: 'blur' }, { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' } ], password: [ { required: true, message: '请输入密码', trigger: 'blur' }, { min: 6, max: 10, message: '长度在 6 到 10 个字符', trigger: 'blur' } ] } } } ``` 在提交时调用this.$refs.form.validate()进行校验校验通过后进行下一步操作。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值