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.rhkb.cn/news/138942.html

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

相关文章

LeetCode 接雨水 木桶理论、dp预处理

原题链接&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题面&#xff1a; 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a…

如何使用微信文件传输助手?看这里!

微信文件传输助手在哪里&#xff1f;为什么我找不到&#xff1f;有哪位朋友能够告诉我吗&#xff1f; 微信文件传输助手是微信官方推出的一款辅助工具&#xff0c;为用户提供了便捷的文件传输方式。用户在使用微信的过程中&#xff0c;可以随时随地通过该功能在手机和电脑之间任…

【TCP】三次握手 与 四次挥手 详解

三次握手 与 四次挥手 1. 三次握手2. 四次挥手三次握手和四次挥手的区别 在正常情况下&#xff0c;TCP 要经过三次握手建立连接&#xff0c;四次挥手断开连接 1. 三次握手 服务端状态转化&#xff1a; [CLOSED -> LISTEN] 服务器端调用 listen 后进入 LISTEN 状态&#xff…

Flink--4、DateStream API(执行环境、源算子、基本转换算子)

星光下的赶路人star的个人主页 注意力的集中&#xff0c;意象的孤立绝缘&#xff0c;便是美感的态度的最大特点 文章目录 1、DataStream API1.1 执行环境&#xff08;Execution Environment&#xff09;1.1.1 创建执行环境 1.2 执行模式&#xff08;Execution Mode&#xff09;…

0基础学three.js环境搭建(2)

这是0基础学three.js系列中的第二篇&#xff0c;在这篇里面我会带着大家把开发环境搭建起来&#xff0c;关于开发环境&#xff0c;方式很多&#xff0c;如果你没有基础&#xff0c;就跟着我的步骤一步一步来&#xff0c;保你不出错。 首先安装node环境&#xff0c;关于node是干…

【MySQL】 MySQL的增删改查(进阶)--贰

文章目录 &#x1f6eb;新增&#x1f6ec;查询&#x1f334;聚合查询&#x1f6a9;聚合函数&#x1f388;GROUP BY子句&#x1f4cc;HAVING &#x1f38b;联合查询⚾内连接⚽外连接&#x1f9ed;自连接&#x1f3c0;子查询&#x1f3a1;合并查询 &#x1f3a8;MySQL的增删改查(…

C语言的文件操作(炒详解)

⭐回顾回顾文件操作的相关细节⭐ 欢迎大家指正错误 &#x1f4dd;在之前的学习中&#xff0c;不管增加数据&#xff0c;减少数据&#xff0c;当程序退出时&#xff0c;所有的数据都会销毁&#xff0c;等下次运行程序时&#xff0c;又要重新输入相关数据&#xff0c;如果一直像这…

linux 设置打开文件数

可以使用下面的文件进行设置 /etc/security/limits.d/90-nproc.conf 先来看/etc/security/limits.d/90-nproc.conf 配置文件&#xff1a; [root ~]# cat /etc/security/limits.d/90-nproc.conf # Default limit for number of users processes to prevent # accidental fork…

计算机网络常见问题

1.谈一谈对OSI七层模型和TCP/IP四层模型的理解&#xff1f; 1.1.为什么要分层&#xff1f; 在计算机中网络是个复杂的系统&#xff0c;不同的网络与网络之间由于协议&#xff0c;设备&#xff0c;软件等各种原因在协调和通讯时容易产生各种各样的问题。例如&#xff1a;各物流…

图像形态学操作(连通性、腐蚀、膨胀)

相关概念 形态学操作-腐蚀 参数&#xff1a; img: 要处理的图像kernal :核结构iteration &#xff1a;腐蚀的次数&#xff0c;默认是1 形态学操作-膨胀 参数&#xff1a; img : 要处理的图像kernal : 核结构iteration : 膨胀的次数&#xff0c;默认为1 import cv2 as cv im…

STM32F103RCT6学习笔记2:串口通信

今日开始快速掌握这款STM32F103RCT6芯片的环境与编程开发&#xff0c;有关基础知识的部分不会多唠&#xff0c;直接实践与运用&#xff01;文章贴出代码测试工程与测试效果图&#xff1a; 目录 串口通信实验计划&#xff1a; 串口通信配置代码&#xff1a; 测试效果图&#…

Cpp/Qt-day020918Qt

目录 完善登录框 点击登录按钮后&#xff0c;判断账号&#xff08;admin&#xff09;和密码&#xff08;123456&#xff09;是否一致&#xff0c;如果匹配失败&#xff0c;则弹出错误对话框&#xff0c;文本内容“账号密码不匹配&#xff0c;是否重新登录”&#xff0c;给定两…

用AVR128单片机的音乐门铃

一、系统方案 1、使用按键控制蜂鸣器模拟发出“叮咚”的门铃声。 2、“叮”声对应声音频率714Hz&#xff0c;“咚”对应声音频率500Hz,这两种频率由ATmega128的定时器生成&#xff0c;定时器使用的工作模式自定&#xff0c;处理器使用内部4M时钟。“叮”声持续时间300ms&#x…

上PICO,沉浸式观看亚运直播,参与跨国界游戏竞技

备受瞩目的杭州第19届亚运会&#xff0c;将于9月23日正式开幕。据悉&#xff0c;这也是有史以来项目最多的一届亚运会&#xff0c;除部分传统奥运项目外&#xff0c;还包含武术、藤球、板球、克柔术、柔术等亚洲特色项目&#xff0c;以及霹雳舞、电子竞技等深受年轻人喜爱的新兴…

英伟达 nvidia 官方code llama在线使用

新一代编程语言模型Code Llama面世&#xff1a;重新定义编程的未来 随着人工智能和机器学习技术的迅速发展&#xff0c;我们现在迎来了一款革命性的大型编程语言模型——Code Llama。该模型是基于Llama 2研发的&#xff0c;为开放模型中的佼佼者&#xff0c;其性能达到了行业领…

2023工博会强势回归!智微工业携八大系列重磅亮相

中国国际工业博览会&#xff08;简称"中国工博会"&#xff09;自1999年创办以来&#xff0c;历经二十余年发展创新&#xff0c;通过专业化、市场化、国际化、品牌化运作&#xff0c;已发展成为通过国际展览业协会&#xff08;UFI&#xff09;认证、中国工业领域规模最…

早餐与风景

来吧&#xff0c;我用流水账描述下这一天。 时维九月&#xff0c;北京的早上有点冷&#xff0c;因为今天有个市场活动要去支撑&#xff0c;按照会议时间的要求&#xff0c;我需要在早上7点半就赶到会场&#xff0c;所以昨天晚上我加班到凌晨处理完了今天要给出去的材料&#xf…

react实现动态递增展示数字特效

在可视化展示界面时有一种场景&#xff0c;就是页面在初始化的时候&#xff0c;有些数字展示想要从某个值开始动态递增到实际值&#xff0c;形成一种动画效果。例如&#xff1a; 写一个数字递增的组件&#xff0c;代码如下&#xff1a; import {useEffect, useRef, useState} f…

基于Java的Base64编解码优化探讨

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

Ubuntu22.04 vnc远程黑屏

一、原因 原因是Ubuntu22.04使用的gnome启用了Wayland。vnc、teamviewer、向日葵、todesk等均无法使用或者远程黑屏等。 简单的说vnc、teamviewer、向日葵、todesk等均基于xorg实现&#xff08;xorg太流行&#xff09;&#xff0c;并不兼容Wayland&#xff0c;所以vnc无法正常…