表单非空验证基本上项目里必有的功能。element组件提供了非常方便的方法来进行非空验证。
从表单新增到表单编辑是没有问题的,但是如果第一次进入页面是先点的编辑表单,然后再去新增表单,这时候就会出现一个问题,打开新增表单时自动触发了非空验证,即还没有填写数据也没有进行接口请求,就已经验证了。而且一般是下拉选或单选、多选等表单项。
解决方法:
因为表单一般是放在`dialog`弹窗里的,我们可以在`watch`监听弹窗的`visible`属性。弹窗打开时先移除验证,`this.$refs.form.clearValidate()`
watch: {
'dialogInfo.dialogVisible'(visible) {
if (visible) {
// 弹窗打开时先移除验证(止第一次进入先点编辑再点新增,会自动触发非空验证)
this.$nextTick(() => {
this.$refs.form.clearValidate()
})
}
}
},