項(xiàng)目中遇到一個需求
當(dāng)證件類型變化時,下面的證件號碼,驗(yàn)證會發(fā)生變化,他可能是身份證,可能是港澳通行政...
這時候就不用el-form上的rules, 而是el-form-item上的rules
<el-form-item
label="證件號碼"
prop="sfzh"
:rules="validateType"
>
<el-input
v-model.trim="form.sfzh"
/>
</el-form-item>
其中validateType 是定義在computed中的,動態(tài)返回rules,根據(jù)form.zjlx來動態(tài)改變rules;
最好不要定義在行內(nèi),因?yàn)槿绻愣x在行內(nèi),如果用到了自定義驗(yàn)證函數(shù),他會找不到的(this指向問題),除非你的自定義函數(shù)也定義在methods里..
computed: {
validateType() {
return this.form.zjlx === '1'
? [{ validator: 自定義驗(yàn)證函數(shù) }]
: []
},
},
需要注意的一點(diǎn)是:如果你選的使用el-form-item上的rules來驗(yàn)證,那么el-form里的rules就不要再次對該字段驗(yàn)證了,否則可能會出現(xiàn)問題!!