温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

element select必填项验证回显问题怎么解决

发布时间:2023-04-07 10:56:33 来源:亿速云 阅读:150 作者:iii 栏目:开发技术

本文小编为大家详细介绍“element select必填项验证回显问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“element select必填项验证回显问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

项目场景:

今天在做页面的时候,需要含有两个form表单,表单的内容以及验证信息的重置。

问题描述

因为两个表单绑定的字段有些重复,并同时要设置必选项,导致当一个表单标红,关闭后还是回显红色,并且另一个表单也受到了影响。然后排查了好久才解决。

element select必填项验证回显问题怎么解决

原因分析:

1、v-model 绑定的数据要和上面的prop的名称不一致

2、type类型不一致

3、form表单以及打开的Dialog对话框未区分开

解决方案:

问题一

<el-select>中v-model 绑定的数据要和上面的<el-form-item>中prop的名称一致。

<el-form-item label="XXX" prop="eqId" v-if="queryParams.testStatus === '0'">
   <el-select
     v-model="form.eqId"
     placeholder="请选择XXXX"
     clearable
     
   >

问题二

但是我的v-model和prop名称是一致的,我又搜了好半天,发现官网上说Form表单校验内置 async-validator,默认是的字段类型是string类型(字符串型)。

如果他的选择类别是id的话,需要成number才可以,于是我又试了试。

eqId: [
   { required: true, message: "XXX不能为空",trigger: "change",type:'number'},
],

但是给我提示,他不是number类型,含泪继续研究

element select必填项验证回显问题怎么解决

问题三 

我看了半天也没研究出来,最后还是一位大佬提醒我,我的页面有两个表单,验证需要区分开,我才突然想起来,赶紧在resetFrom中做了区分。

if (this.item.Number === '1' || this.item.Number=== '2'){
    this.resetForm("form");
}else if(this.item.Number=== '3'){
    this.resetForm("irform");
}

然后发现他们两个form不会互相影响了,但是测试的时候发现页面关闭后再打开,同一个表单下的页面标红项依旧回显。含泪继续看,最后发现因为几个页面用的同一个dialog对话框,我只进行了字段判断打开不同页面的判断,但是未进行dialog中:visible.sync属性进行判断。

<el-dialog 
  :title="title" 
  :visible.sync="open"  
  append-to-body 
  :close-on-click-modal="false"
>
    <el-form ref="form"  :model="form" :rules="rules" label-width="110px" v-if="(item.Number === '1' || item.Number === '2') && open">
     ...
      不重要的一些代码
     ...
    </el-form>
    <el-form ref="irform"  :model="irform" :rules="rules" label-width="115px" v-if="item.Number === '3' && open ">
    </el-form>
</el-dialog>

我设置的:visible.sync=open,所以&&open

读到这里,这篇“element select必填项验证回显问题怎么解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI