【vue3+vue2】清除ElementUI的el-input标签的校验-区别——resetFields()-移除校验结果并重置字段值 & clearValidate()-移除校验结果
清除ElementUI的el-input标签的校验——resetFields()与clearValidate()的区别1、在el-form上方写属性 ref=“form”<el-form ref="form" :model="form":rules="rules"label-width="90px">2、写清空代码,这里的form一定要和ref的值一致this.$nextTick(()
清除ElementUI的el-input标签的校验-区别——resetFields()-移除校验结果并重置字段值 & clearValidate()-移除校验结果
1、在el-form上方写属性 ref=“form”
<el-form ref="form" :model="form" :rules="rules" label-width="90px">
2、写清空代码,这里的form一定要和ref的值一致
this.$nextTick(() => { // 表单数据置空 并且移除校验
this.$refs['form'].resetFields();
})
详解-resetFields()与clearValidate()
resetFields()与clearValidate()的区别
1、介绍
2、区别
相同点:二者都能移除表单校验
不同点:resetFields()会对整个表单进行重置,将所有的字段重置为初始值
clearValidate() 只会移除表单校验,而且可以只对部分字段进行移除校验
3、使用场景
resetFields()会移除表单校验并初始化表单,一般用于新增
clearValidate()移除全部或部分表单校验,一般用于修改、编制
4、两者用法基本一致
this.$refs.form.resetFields();
this.$refs[‘form’].resetFields();
this.$refs.form.clearValidate();
this.$refs[‘form’].clearValidate();
this.$refs.form.clearValidate(“a”);
this.$refs.form.clearValidate([“b”,“c”]);
5、注意事项
1、resetFields()会重置字段值,而在vue中大量用到的数据的绑定,很可能出现同一个数据绑定在多处的情况,如果滥用resetFields很可能造成界面上出现莫名的bug
// 下图为项目中的bug
左边的树和右边的表单用了绑定了相同的数据,
点击左边树的每个节点可以在右边进行编辑,右边点击保存,会对数据进行校验,
左边树结构每次点击不同节点都要重置校验,
误用了resetFields,会造成-去重置仓库》大楼数据为空》再次左边树结构的数据消失,变为空白。
2、添加和修改公用一个弹窗,点击添加弹窗后,
如果没移除表单校验的话,再点击修改弹窗时校验就会被记住,
所以需要移除校验,但在清空表单校验时会报如下错误:
解决方案:
this.$nextTick(()=>{
this.$refs.form.resetFields();
})
vue3.0中的应用
1、结构
<el-form
:model="form"
label-width="auto"
ref="ruleForm"
:rules="rules"
class="wrap-294 ml-34"
>
</el-form>
2、方法
setup(props, { emit }) {
const funMethods = {
agreeChange:function(val){
// console.log(val,"hhhhhhhhh");
if(val=2){
ruleForm.value.clearValidate(); //2、注意vue3.0写法
}
},
},
return {
state,
...toRefs(state),
ruleForm,
...funMethods
};
}
显示效果-不带* 去除必选项
更多推荐
所有评论(0)