elementUI elfrom表单验证无效、不起作用常见原因

今天遇到一个变态的问题,因页面比较复杂,出现几组条件判断,每个template内部又包含很多表单!!

<template v-if="transformTypeValue == 1"></template><template v-else-if="transformTypeValue == 2"></template><template v-else-if="transformTypeValue == 3"></template><template v-else-if="transformTypeValue == 4"></template>

竟然发现表单的验证规则只有某一个无效了!!!其他一切正常!!太变态了!!

先分析以下代码:

<!-- 许可使用权 -->
<template v-if="transformTypeValue == 4"><el-row><el-col :span="10"><el-form-item label="入门费(元)" class="is-required" prop="enterFee"><el-input style="width:100%" v-model="forms.enterFee" placeholder="请输入入门费"></el-input></el-form-item></el-col><el-col :span="10"><el-form-item label="提成方式"><el-select style="width:100%" v-model="forms.commissionType" placeholder="提成方式"><el-option v-for="a in dict.type.commission_options" :key="a.value" :label="a.label":value="a.value"></el-option></el-select></el-form-item></el-col></el-row><el-row><el-col :span="10"><el-form-item label="时间段" class="is-required" prop="licenseDate"><el-date-picker style="width:100%" v-model="forms.licenseDate" type="daterange" format="yyyy-MM-dd"start-placeholder="开始日期" range-separator="-" end-placeholder="结束日期"placeholder="时间段"></el-date-picker></el-form-item></el-col><el-col :span="10"><el-form-item label="收取比例(%)" class="is-required" prop="colloctionRatio"><el-input style="width:100%" v-model="forms.colloctionRatio" placeholder="请输入收取比例"></el-input></el-form-item></el-col></el-row><el-row><el-col :span="10"><el-form-item label="受让单位" prop="transform2Units" class="is-required"><el-input style="width:100%" v-model="forms.transform2Units" placeholder="请输入受让单位"></el-input></el-form-item></el-col><el-col :span="10"><el-form-item label="通讯地址" prop="contactAddress" class="is-required"><el-input style="width:100%" v-model="forms.contactAddress" placeholder="请输入通讯地址"></el-input></el-form-item></el-col></el-row><el-row><el-col :span="10"><el-form-item label="联系人" prop="contactUser" class="is-required"><el-input style="width:100%" v-model="forms.contactUser" placeholder="请输入联系人"></el-input></el-form-item></el-col><el-col :span="10"><el-form-item label="联系人联系方式" prop="contactUserPhone" class="is-required"><el-input style="width:100%" v-model="forms.contactUserPhone" placeholder="请输入联系人联系方式"></el-input></el-form-item></el-col></el-row><el-row><el-col :span="10"><el-form-item label="合同生效日期" prop="bargainDate" class="is-required"><el-date-picker style="width:100%" v-model="forms.bargainDate" placeholder="请选择合同生效日期" format="yyyy-MM-dd"type="daterange" range-separator="至" start-placeholder="开始日期"end-placeholder="结束日期"></el-date-picker></el-form-item></el-col></el-row>
</template>

最外层使用<template></template>el-form,第二层使用el-form-item,第三层使用el-input

el-form绑定的数据对象为forms,表单的验证规则定义在formRules。整体代码如下:

data() {return {forms: {outcomesName: null,outcomesType: null,transformExpenditure: null,outcomesTransformTime: null,achievementUnit: null,achievementDeptId: null,isFundUpport: '1',transformExpenditure: null,transformPathway: null,transformType: null,attachment: [],totalInvestment: null,projInformation: null,transformMoney: null,transform2Units: null,contactAddress: null,contactUser: null,contactUserPhone: null,bargainDate: null,enterFee: null,commissionType: null,licenseDate: null,colloctionRatio: null,stockPropotion:null,cooperationUnit:null,},formRules: {outcomesName: [{ required: true, message: "成果名称不能为空", trigger: ["blur", "change"] }],outcomesType: [{ required: true, message: "成果类型不能为空", trigger: ["blur", "change"] }],transformExpenditure: [{ required: true, message: "转化经费不能为空", trigger: ["blur", "change"] }],outcomesTransformTime: [{ required: true, message: "成果转化时间不能为空", trigger: ["blur", "change"] }],achievementUnit: [{ required: true, message: "成果所属单位不能为空", trigger: ["blur", "change"] }],achievementDeptId: [{ required: true, message: "成果归属部门不能为空", trigger: ["blur", "change"] }],transformPathway: [{ required: true, message: "转化途径不能为空", trigger: ["blur", "change"] }],totalInvestment: [{ required: true, message: "总投资金额不能为空", trigger: ["blur", "change"] }],transformMoney: [{ required: true, message: "转让金额不能为空", trigger: ["blur", "change"] }],transform2Units: [{ required: true, message: "受让单位不能为空", trigger: ["blur", "change"] }],contactAddress: [{ required: true, message: "通讯地址不能为空", trigger: ["blur", "change"] }],contactUser: [{ required: true, message: "联系人不能为空", trigger: ["blur", "change"] }],contactUserPhone: [{ required: true, message: "联系人联系方式不能为空", trigger: ["blur", "change"] }],bargainDate: [{ required: true, message: "合同生效日期不能为空", trigger: ["blur", "change"] }],enterFee: [{ required: true, message: "入门费不能为空", trigger: ["blur", "change"] }],commissionType: [{ required: true, message: "提成方式不能为空", trigger: ["blur", "change"] }],licenseDate: [{ required: true, message: "时间段不能为空", trigger: ["blur", "change"] }],colloctionRatio: [{ required: true, message: "收取比例不能为空", trigger: ["blur", "change"] }],stockPropotion: [{ required: true, message: "占股比例不能为空", trigger: ["blur", "change"] }],cooperationUnit: [{ required: true, message: "合作单位不能为空", trigger: ["blur", "change"] }],},};
},

 再来看看触发验证时,通讯地址一栏无论如何也无法触发验证!!!如下动画!!

 通讯地址的验证表单prop='contactAddress',表单内的input也是forms.contactAddress,验证规则写的也是contactAddress,这完全没有问题呀,可是为啥呢?为啥呢?为啥呢?为啥呢?为啥呢?为啥呢?

一万个艹泥马飞奔而过。。。你猜怎么着,我无论将哪个表单移动到通讯地址这块儿位置它就无法验证了。。。把通讯地址移动到别的位置就正常了!!

这特么是什么鬼。。。。无奈我就想着是不是<template></template>的问题,

我就将<template></template>改为<div></div>,一切就好了。。。无奈极了。

其他表单验证无效总结:

1、prop中使用的变量与表单v-model绑定的变量名不一样导致无法触发。

prop="enterFee",v-model="forms.enterMoney",无法触发验证规则。

 <el-form-item label="入门费(元)" class="is-required" prop="enterFee"><el-input style="width:100%" v-model="forms.enterMoney" placeholder="请输入入门费"></el-input></el-form-item>

2、rules规则中未定义enterFee相关的验证方法导致无法触发验证规则。

3、el-from-item没有加prop导致无法触发验证规则。

4、from绑定的表单变量没有在data中定义导致无法触发验证规则。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/85102.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言-扫雷游戏的实现

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…

如何实现线程池之间的数据透传 ?

如何实现线程池之间的数据透传 &#xff1f; 引言transmittable-thread-local概览capture如何 capture如何保存捕获的数据 save 和 replayrestore 小结 引言 当我们涉及到数据的全链路透传场景时&#xff0c;通常会将数据存储在线程的本地缓存中&#xff0c;如: 用户认证信息透…

​校园学习《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

​校园学习《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

【Stm32】【Lin通信协议】Lin通信点亮灯实验

Lin通信点亮灯实验 通过STM32的串口发送数据&#xff0c;然后通过串口转换模块将数据转换成LIN&#xff08;Local Interconnect Network&#xff09;协议&#xff0c;最终控制点亮灯。需要工程和入门资料的可以私信我&#xff0c;看到了马上回。 入门书本推荐&#xff1a; 一…

【C语言】数组和指针刷题练习

指针和数组我们已经学习的差不多了&#xff0c;今天就为大家分享一些指针和数组的常见练习题&#xff0c;还包含许多经典面试题哦&#xff01; 一、求数组长度和大小 普通一维数组 int main() {//一维数组int a[] { 1,2,3,4 };printf("%d\n", sizeof(a));//整个数组…

Postman应用——控制台调试

当你在测试脚本中遇到错误或意外行为时&#xff0c;Postman控制台可以帮助你识别&#xff0c;通过将console.log调试语句与你的测试断言相结合&#xff0c;你可以检查http请求和响应的内容&#xff0c;以及变量之类的。 通常可以使用控制台日志来标记代码执行&#xff0c;有时…

网络安全日报 2023年09月21日

1、研究人员披露基于ERMAC木马的Hook家族银行木马 https://research.nccgroup.com/2023/09/11/from-ermac-to-hook-investigating-the-technical-differences-between-two-android-malware-variants/ 研究人员发现 ERMAC 源代码被用作 Hook 的基础。恶意软件操作者可以发送到…

Visual Studio将C#项目编译成EXE可执行程序

经常看文章时会收获不少实用工具&#xff0c;有的在github上是编译好的&#xff0c;有的则是未编译的项目文件。所以经常会使用Visual Studio编译项目文件成exe可执行程序&#xff0c;以下为编译的流程。 第一步&#xff0c;从github上下载项目文件&#xff0c;举个例子&#…

小米手机安装面具教程(Xiaomi手机获取root权限)

文章目录 1.Magisk中文网&#xff1a;2.某呼&#xff1a;3.最后一步打开cmd命令行输入的时候:4.Flash Boot 通包-Magisk&#xff08;Flash Boot通刷包&#xff09;5.小米Rom下载&#xff08;官方刷机包&#xff09;6.Magisk最新版本国内源下载 1.Magisk中文网&#xff1a; htt…

【深度学习实验】前馈神经网络(七):批量加载数据(直接加载数据→定义类封装数据)

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. 直接加载鸢尾花数据集 a. 加载数据集 b. 数据归一化 c. 洗牌操作 d. 打印数据 2. 定义类封装数据 a. __init__(构造函数&#xff1a;用于初始化数据集对象) b.…

华为OD机试 - 构成正方形的数量 - 数据结构map(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、Java算法源码五、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#xff09;》。 …

mysql 半同步复制模式使用详解

目录 一、前言 二、mysql主从架构简介 2.1 mysql主从复制架构概述 2.2 为什么使用主从架构 2.2.1 提高数据可用性 2.2.2 提高数据可靠性 2.2.3 提升数据读写性能 2.3 主从架构原理 2.4 主从架构扩展 2.4.1 双机热备&#xff08;AB复制&#xff09; 2.4.2 级联复制 2…

Qt核心:元对象系统、属性系统、对象树、信号槽

一、元对象系统 1、Qt 的元对象系统提供的功能有&#xff1a;对象间通信的信号和槽机制、运行时类型信息和动态属性系统等。 2、元对象系统是 Qt 对原有的 C进行的一些扩展&#xff0c;主要是为实现信号和槽机制而引入的&#xff0c; 信号和槽机制是 Qt 的核心特征。 3、要使…

当网络设置为自动获取dns时而实际nds是8.8.8.8,1.1.1.1的解决方法

笔记本换网络环境后&#xff0c;网络设置的是自动获取IP和自动获取dns。但使用命令&#xff1a;config/all命令时发现dns总是8.8.8.8,1.1.1.1。导致csdn上不了。 8.8.8.8,1.1.1.1&#xff1a;是谷歌的dns。 解决办法&#xff1a; 在支行中输入regedit打开注册表后&#xff0…

windows下载虚拟机virtualBox

链接&#xff1a;Downloads – Oracle VM VirtualBox 进入链接这样点击&#xff1a; 直接下载即可

Java“牵手”速卖通商品列表页数据采集+速卖通商品价格数据排序,速卖通API接口申请指南

速卖通是阿里巴巴旗下的面向国际市场打造的跨境电商平台&#xff0c;被称为国际版淘宝&#xff0c;速卖通面向海外买家客户&#xff0c;通过支付宝国际账户进行担保交易&#xff0c;并使用国际物流渠道运输发货&#xff0c;是全球第三大英文在线购物网站。 速卖通商品列表数据…

关于IDEA没有显示日志输出?IDEA控制台没有显示Tomcat Localhost Log和Catalina Log 怎么办?

问题描述&#xff1a; 原因是;CATALINA_BASE里面没有相关的文件配置。而之前学习IDEA的时候&#xff0c;把这个文件的位置改变了。导致&#xff0c;最后输出IDEA的时候&#xff0c;不会把日志也打印出来。 检查IDEA配置; D:\work_soft\tomcat_user\Tomcat10.0\bin 在此目录下&…

如何在没有第三方.NET库源码的情况,调试第三库代码?

大家好&#xff0c;我是沙漠尽头的狼。 本方首发于Dotnet9&#xff0c;介绍使用dnSpy调试第三方.NET库源码&#xff0c;行文目录&#xff1a; 安装dnSpy编写示例程序调试示例程序调试.NET库原生方法总结 1. 安装dnSpy dnSpy是一款功能强大的.NET程序反编译工具&#xff0c;…

STM32 Cubemx 通用定时器 General-Purpose Timers同步

文章目录 前言简介cubemx配置 前言 持续学习stm32中… 简介 通用定时器是一个16位的计数器&#xff0c;支持向上up、向下down与中心对称up-down三种模式。可以用于测量信号脉宽&#xff08;输入捕捉&#xff09;&#xff0c;输出一定的波形&#xff08;比较输出与PWM输出&am…

activemq部署

目录 1.下载 2.java环境 3.解压启动 4.访问测试 5.问题记录 5.1.无法启动成功问题 5.2.其他服务器无法访问 1.下载 ActiveMQ 2.java环境 需要注意要求的jdk版本&#xff0c;否则启动不会成功 3.解压启动 tar -zxvf apache-activemq-5.18.2-bin.tar.gz 进入到目录下执行…