方法一:
直接在 el-form-item 上添加 class=“is-required”,相当于加了一个图标
只要打开界面添加该类的项就会显示红星,但是不会校验(校验功能需要另外写)
element就是通过is-required这个类把图标显示出来的
<el-form-item label="a" prop="a" class="is-required">
<el-input v-model="form.a" />
</el-form-item>
方法二:
场景:在保存时只校验某些项,打开保存的表单后,提交时需要的所有校验项没填的都要显示红星
第一步:先写一个功能,可以自行设置rules规则里项是否进行校验
//写一个函数,能够控制除a,b,c,d以外的其他项是否进行校验(这里的a,b,c,d一直都是校验项)
function changeRequired(isRequired) {
var requiredItem = ["a", "b", "c", "d"]; //a,b,c,d是rules里的部分项
for (var key in rules) {
if (requiredItem.indexOf(key) < 0) { //rules规则里除a,b,c,d以外的项
if (isRequired) { //isRequired 值传的是true时
rules[key][0].required = false; //除a,b,c,d以外的项不需要检验,只校验a,b,c,d
} else {
rules[key][0].required = true; //否则除a,b,c,d以外的项需要检验
}
}
}
}
然后在某个功能(一般是提交或者保存功能)里调用该函数
比如保存时,只有这四个需要校验,则调用 changeRequired(true)
提交时,全部项都要校验,调用changeRequired(false)
第二步:在打开表单页面时调用changeRequired(false), 给form表单赋值完成以后清空校验结果即可 (一定要在赋值完以后执行)
formRef.value.clearValidate();