elementUI表單校驗動態添加校驗規則


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>

  效果:

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

 

 

 

 

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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM