需求:一个表单中某个字段,根据另一个字段变化,校验是否必填
<el-form ref="detail" :model="detail" :rules="ruleData" size="small" label-width="100px"> <el-card> <el-row> <el-col :span="12"> <el-form-item label="范围" prop="type" label-width="220px"> <el-select v-model="detail.type" style="width: 100%" clearable placeholder="请选择" @change="typeChange()"> <el-option label="分步" value="01"> </el-option> <el-option label="最终" value="02"> </el-option> </el-select> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="数量" prop="number" label-width="220px"> <el-input v-model="detail.number" type="number" style="width: 100%"> </el-input> </el-form-item> </el-col> </el-row> </el-card> </el-form>
typeChange () { if (String(this.detail.type) === '02') { this.$delete(this.ruleData, 'number'); } else { this.ruleData = { ...this.rules, number: this.otherRule.number }; } (this.$refs.detail as any).clearValidate(); } rules = { type: [{ required: true, message: '请选择', trigger: 'blur' }], }; otherRule = { number: [{ required: true, message: '请输入', trigger: 'blur' }], }; ruleData = { ...this.rules, number: this.otherRule.number };
标签:ruleData,Vue,otherRule,rules,number,element,ui,校验,message From: https://www.cnblogs.com/Steal-cha-of-Melon/p/note-gagaga.html