项目场景:

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


问题描述

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

原因分析:

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-selectv-model="form.eqId"placeholder="请选择XXXX"clearablestyle="width: 240px">

问题二

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

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

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

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

问题三

我看了半天也没研究出来,最后还是一位大佬提醒我,我的页面有两个表单,验证需要区分开,我才突然想起来,赶紧在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

终于纠结一天的问题终于解决了,所以做项目一定要细心

vue+element-ui select必填项验证回显问题+实现重置表单内容相关推荐

  1. 解决element ui select下拉框不回显数据问题

    最近在做一个项目,项目的后端是地址: https://github.com/wangyuanjun008/wyj-springboot-security.git 前端地址是 https://githu ...

  2. ajax必填项验证,jQuery验证 - 通过MVC2中的ajax动态添加必填字段

    我正在尝试在MVC2中的表单上使用jQuery验证.我正在使用期货项目中的MicrosoftMvcJQueryValidation.js. 首次加载表单时,它是代表ViewViewModel,并且有三 ...

  3. Vue+Element UI 下,如何给一个表单设置自定义规则或多个验证规则(:rules)

    依旧是公司里那个Vue+Element UI的项目.今天遇到了一个新的问题:表单中某个选择器的值不同,控制着下面表单内容是否显示. 大概就是这个样子.由后台返回的"发放方式"的数值 ...

  4. layui自带验证体系:手机号验证、邮箱验证、必填项非空验证、数字验证(含代码、案例)

    layui自带验证体系:手机号验证.邮箱验证.必填项非空验证.数字验证(含代码.案例) 案例 · 截图: 实例代码: <!DOCTYPE html> <html> <he ...

  5. VUE ELEMENT UI 清空select 下拉选项

    VUE ELEMENT UI 清空select 下拉选项 1.select代码 <el-form ref="searchForm" :inline="true&qu ...

  6. vue 上传附件设置必填项

    在提交表单的时候动态移除, this.$refs.image.clearValidate(); this.rules.imageUrl = [] 如果上传成功就把必填项动态移除,

  7. 【前端】Vue+Element UI案例:通用后台管理系统-用户管理:Form表单填写、Dialog对话框弹出

    文章目录 目标 代码 0.页面结构 1.新增按钮和弹出表单:结构 2.新增按钮和弹出表单:点击新增弹出表单 3.表单样式 4.表单验证 5.表单的提交和取消功能:接口.mock相关准备 6.表单的提交 ...

  8. 【前端】Vue+Element UI案例:通用后台管理系统-用户管理:Table表格增删查改、Pagination分页、搜索框

    文章目录 目标 代码 0.结构 1.按钮-删除 2.按钮-编辑 3.debug 4.样式 5.分页Pagination:功能 6.分页Pagination:样式 7.搜索框:功能 8.搜索框:样式 总 ...

  9. 【前端】Vue+Element UI案例:通用后台管理系统-代码总结(已开源)

    文章目录 前言 项目文件目录 api mockServe home.js permission.js index.js mock.js user.js assert components Common ...

  10. div.php织梦自定义表判断不能为空,织梦自定义表单字段为必填项的教程

    织梦自定义表单用的最多的就是制作留言板,报名等功能,但是添加的字段不填写就能提交,容易被恶意提交,为了防止这些,我们可以把这些字段选项设定为必填项. 方法如下: 1. 用php验证 在plus/diy ...

最新文章

  1. Java多线程学习笔记之二缓存
  2. MongoDB【快速入门】
  3. Web安全之XSS漏洞
  4. Hive hiveserver2 配置运行
  5. h5 修改title 微信_微信公众号客服消息不限次数推送如何设置?
  6. 收藏:flex/flash
  7. LeetCode 283. Move Zeroes
  8. vant组件做表格_落户上海!分享心得,再做个积分计算器
  9. 牛客NOIP暑期七天营-普及组1 解题报告
  10. 聊聊北京大部分前端从业者所面临的困境
  11. 7-12 分解质因数 (10分)
  12. gmx一定要在linux下运行么,gmx_mmpbsa使用说明
  13. 如何使用IceSword冰刃
  14. dns远程服务器未响应,dns服务器未响应的解决方法
  15. 第二章 数据查询语言DQL
  16. 华为eNSP的介绍与简单使用
  17. Springboot垃圾分类管理系统836b7计算机毕业设计-课程设计-期末作业-毕设程序代做
  18. app怎么调用mysql数据_教你如何拿别人APP中的数据
  19. 幼儿园教案我和计算机比本领,幼儿园说课稿:比本领
  20. 2020.7.22英谷实训日志

热门文章

  1. Spring的装配方式
  2. 我要偷偷的学Python,然后惊呆所有人(第九天)
  3. cpu load是什么?
  4. 剑指Offer之二维数组中的查找
  5. 微型计算机与巨型计算机相比,微型计算机的特点及应用
  6. 庞加莱买面包的故事(二)
  7. linux 下部署tomcat问题
  8. 北京文安科技发展有限公司招聘简介
  9. 美国卡内基梅隆大学计算机排名,卡内基梅隆大学,美国卡梅基梅隆大学世界排名?...
  10. 计算机中安装音乐软件是一种,电脑必装的八款软件,你装了吗?