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>
效果:
活動名稱為空時,具體活動選項非必填

活動名稱不為空時,具體活動選項必填

