elementui動態添加校驗規則,場景:
如果活動名稱為空,則所有字段非必填
如果活動名稱不為空,則具體活動名稱提示必填
<template> <div id="app"> <el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form-item label="活動名稱" prop="name"> <el-input v-model="form.name" @blur="blur()"></el-input> </el-form-item> <el-form-item label="具體活動" prop="name1"> <el-input v-model="form.name1"></el-input> </el-form-item> </el-form> </div> </template> <script> export default { name: "app", components: {}, data() { return { form: { name: "", name1: "", }, rules: {}, }; }, methods: { addRules() { // 定義規則 const newRules = [{ required: true, trigger: "change", message: "具體活動必填" }]; // 給rules對象添加規則 this.rules = { ...this.rules, name1: newRules }; }, removeRules() { // 清除指定校驗規則 this.$refs.form.clearValidate(["name1"]); // 這行必須 this.rules = { ...this.rules, name1: [] }; }, blur() { if (this.form.name === "") { this.removeRules(); } else { this.addRules(); } }, }, }; </script>
效果:
活動名稱為空時,具體活動選項非必填
活動名稱不為空時,具體活動選項必填