vue element form动态prop根据条件动态添加校验的问题

根据条件动态添加校验的问题

动态切换prop值时不能默认为空,不然校验会失效,可以用'empty'代替空值

<el-form label-width="95px" :model="form" ref="form" :rules="rules">
   <el-form-item label="总计星钻:"  :prop="form.auditType===1?'score':'empty'">
      <el-input
        class="input"
        placeholder="请输入星钻"
        v-model.number="form.score"
      >
        <template slot="append">个</template>
      </el-input>
    </el-form-item>
    <el-form-item label="审核状态:" prop="auditType">
      <el-radio-group v-model="form.auditType" @change="change">
        <el-radio :label="1">通过</el-radio>
        <el-radio :label="2">不通过</el-radio>
      </el-radio-group>
    </el-form-item>
 </el-form>
 
<script>
export default {
 
  data() {
    return {
      form: {
        score: ''
      }
      rules: {
         score: [{ required: true, message: "请输星钻", trigger: "blur" }],
      }
    }
  },
  methods: {
    change(v) {
      if(v===2){
         this.$refs.form.clearValidate()
      }
    },
  }
}
 
</script>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过以下步骤实现vue3 element form动态表单添加删除和校验: 1. 创建一个数组来存储表单项的数据,例如: ``` data() { return { formItems: [ { label: '姓名', prop: 'name', value: '', rules: [{ required: true, message: '请输入姓名' }] }, { label: '年龄', prop: 'age', value: '', rules: [{ required: true, message: '请输入年龄' }, { type: 'number', message: '年龄必须为数字' }] } ] } } ``` 2. 在模板中使用`el-form`和`el-form-item`标签来渲染表单,例如: ``` <el-form :model="formData" :rules="formRules" ref="form"> <el-form-item v-for="(item, index) in formItems" :key="index" :label="item.label" :prop="item.prop"> <el-input v-model="item.value"></el-input> <el-button type="danger" size="small" icon="el-icon-close" @click="removeFormItem(index)" v-if="formItems.length > 1"></el-button> </el-form-item> <el-button type="primary" @click="addFormItem">添加表单项</el-button> <el-button type="primary" @click="submitForm">提交</el-button> </el-form> ``` 3. 在方法中实现添加和删除表单项的功能,例如: ``` methods: { addFormItem() { this.formItems.push({ label: '新表单项', prop: 'new_prop', value: '', rules: [{ required: true, message: '请输入新表单项' }] }) }, removeFormItem(index) { this.formItems.splice(index, 1) }, submitForm() { this.$refs.form.validate((valid) => { if (valid) { // 表单校验通过,提交表单数据 } else { // 表单校验不通过 } }) } } ``` 4. 在表单校验规则中使用动态绑定的方式,例如: ``` data() { return { formRules: {} } }, watch: { formItems: { handler(newValue) { this.formRules = {} newValue.forEach(item => { this.$set(this.formRules, item.prop, item.rules) }) }, deep: true } } ``` 这样就可以实现vue3 element form动态表单添加删除和校验了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值