VUE3 v-show 引起的表单验证问题

<el-form ref="formRef" :rules="rules" :model="form" label-width="80px"><el-form-item label="任务类型" prop="TaskType"><el-radio-group v-model="form.TaskType" @change="handleChangeTaskType($event)"><el-radio :label="1">1</el-radio><el-radio :label="2">2</el-radio><el-radio :label="3">3</el-radio></el-radio-group></el-form-item><el-form-item label="类型1要求输入内容" v-show="form.TaskType === 1" prop="TaskAttendResources"><!-类型1要求输入内容--></el-form-item><el-form-item label="类型2要求输入内容" v-show="form.TaskType === 2" prop="TaskAttendProblems"><!-类型2要求输入内容--></el-form-item><el-form-item label="类型3要求输入内容" v-show="form.TaskType === 3" prop="TaskContent"><QuillEditor ref="ref_QE_Content" theme="snow" :toolbar="toolbarOptions" contentType="html" enable v-model:content="form.TaskContent" placeholder="输入任务内容……" @blur="onEditorBlur($event, 'TaskContent')" @focus="onEditorFocus($event)"                 @ready="onEditorReady($event)" @textChange="onTextChange($event, 'TaskContent')"@update:content="onContentChange($event, 'TaskContent')"/></el-form-item><el-form-item><el-button type="primary" @click="onSubmit">确定</el-button><el-button @click="onReset">取消</el-button></el-form-item></el-form>

如上:有一个表单,要求用户在选择“任务类型3”时,必须“TaskContent”的内容,选择类型1或类型2时则不做验证要求。

<script setup name="addtask">const form = reactive({  TaskType: 1,   TaskContent: ""   });const rules = {TaskContent: [{ required: true, message: "请输入任务内容", trigger: ['blur', 'change'] }]};</script>

上述验证代码,会发现有问题,如果用户选择或者切换到了“类型1”或者“类型2”,同样会对类型3下的TaskContent进行验证,提示用户“请输入任务内容

解决方法:有人提出了把v-show 也成v-if,表单验证好像没问题了,但是程序如果进行了对TaskContent进行了其它操作,会引起不必要的错误。

最终解决方法:自定义验证规则

<script setup name="addtask">const form = reactive({  TaskType: 1,   TaskContent: ""   });const rules = {TaskContent: [{required: true,// message: "请输入任务内容",// 自定义验证,当选择类型3时,才进行TaskContent验证Value是否为空validator: (rule, value, callback) => {          const checkValue = quill_content.getText().replace(/^\s+/g, '') != ''if (form.TaskType === 3 && !checkValue) {callback(new Error('请输入任务内容'));}else {callback();}},trigger: ['blur', 'change']},],};</script>

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

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

相关文章

ThreadPoolExecutor

简述&#xff1a; 有的时候&#xff0c;系统处理很多任务&#xff0c;如何这些任务要是都是通过new Thread来做的话&#xff0c;系统就不得不常常的创建之后还要销毁Thread&#xff0c;这个是非常消耗时间而且还占用资源&#xff0c;所以我们通过创建线程池来管理我们的线程。 …

你总说时间很少

你总说时间很少 没时间看哭泣的骆驼 少了心情 你总说时间很少 没时间撩拨那爱的罗曼史 少了喜欢 你总说时间很少 没时间吮吸印度洋的水清沙白 少了勇敢 你总说时间很少 没时间寻找相伴的野马 少了感觉 可到最后 时间真的很少 有了喜欢 就少了心情 有了感觉 就少了勇敢…

Unity 将是驱动 C# 增长的引擎吗 ?

C# 在中国的采用需要一个杀手级应用的带动&#xff0c; 那么这样的一个杀手级应用是 Unity吗&#xff0c;我这里大胆推测采用CoreCLR 的新一代完全采用C#构建的Unity 将是这样的一个杀手级应用。Unity已被广泛应用于数字孪生、数字城市、数字工厂等场景&#xff0c;成为各产业加…

HTML5video 标签

属性 值 说明 autoplay autoplay 如果出现该属性&#xff0c;则视频在就绪后马上播放。 controls controls 如果出现该属性&#xff0c;则向用户显示控件&#xff0c;比如播放按钮。 preload preload 如果出现该属性&#xff0c;则视频…

Windows 超级开源实用工具:Microsoft PowerToys

实用工具集&#xff1a; Always on Top ​通过 Always on Top&#xff0c;可使用快捷键方式 (⊞ WinCtrlT) 将窗口固定在其他窗口的顶部。 ​ PowerToys Awake PowerToys Awake旨在使计算机保持唤醒状态&#xff0c;且无需管理其电源和睡眠设置。 运行耗时较长的任务时&#…

Python入门之数据类型

字符串 列表 元组 字典 转载于:https://www.cnblogs.com/py17/p/8919495.html

Kubeadm 快速搭建 k8s v1.24.1 集群(openEuler 22.03 LTS)

kubeadm 简介kubeadm 是 Kubernetes&#xff08;以下简称 k8s&#xff09;官方提供的用于快速安装部署 k8s 集群的工具&#xff0c;伴随 k8s 每个版本的发布都会同步更新&#xff0c;kubeadm 会对集群配置方面的一些实践做调整&#xff0c;通过实验 kubeadm 可以学习到 k8s 官方…

汇编试验五:编写、调试具有多个段的程序

ds 数据段放入数据正确&#xff1b; 两次push 操作后&#xff0c;ss栈段正确&#xff1b; 由于pop 操作顺序&#xff0c;ds数据段并没有发生改变&#xff1b; Source Code: assume cs:code, ds:data, ss:stackdata segmentdw 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H …

SVN四部曲之SVN设置详解深入

想知道不同的设置是干什么用的&#xff0c;你只需将鼠标指针在编辑框/选项框上停留一秒钟...一个帮助提示气泡就会弹出来。 常规设置 图 4.68. 设置对话框&#xff0c;常规设置页面 这个对话框允许你指定自己喜欢的语言&#xff0c;同时也可做那些与Subversion相关的特殊设置。…

Vue3.2单文件组件setup的语法糖总结

目录 前言 setup语法糖 一、基本用法 二、data和methods 三、计算属性computed 四、监听器watch、watchEffect 五、自定义指令directive 六、import导入的内容可直接使用 七、声明props和emits 八、父组件获取子组件的数据 九、provide和inject传值 十、路由useRou…

自动判断PC端、手机端跳往不同的域名JS实现代码

输入相同域名&#xff0c;在pc端和移动端会出现不同的页面效果&#xff0c;一种是用栅格系统实现自适应&#xff0c; 更多的是设计两套不同的模板和两个二级域名或者一个主域名和一个二级域名&#xff08;就是有区别就可以了&#xff09;; js代码判断浏览器的用户代理头类别从而…

使用dotnet-monitor分析在Kubernetes的应用程序:Sidecar模式

dotnet-monitor可以在Kubernetes中作为Sidecar运行&#xff0c;Sidecar是一个容器&#xff0c;它与应用程序在同一个Pod中运行&#xff0c;利用Sidecar模式使我们可以诊断及监控应用程序。如下图所示&#xff0c;这是我们最终要实现的目标&#xff0c;通过可视化界面查看应用程…

C/C++语言的特点

一、支持数据封装和数据隐藏  在C中&#xff0c;类是支持数据封装的工具&#xff0c;对象则是数据封装的实现。C通过建立用户定义类支持数据封装和数据隐藏。  在面向对象的程序设计中&#xff0c;将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义。对象被说…

JS中的扩展运算符(...)和剩余运算符(...)

文章目录 一、概念二、扩展运算符三、剩余运算符四、总结五、参考资料一、概念 在JS中&#xff0c;扩展运算符&#xff08;spread&#xff09;是三个点 (...) &#xff0c;剩余运算符&#xff08;rest&#xff09;也是三个点 (...) 二、扩展运算符 &#xff08;1&#xff09;基…

SFB 项目经验-07-Skype for Business 话机 Polycom CX700

本系列博文&#xff1a;Lync 项目经验-01-共存迁移-Lync2013-TO-SFB 2015-规划01http://dynamic.blog.51cto.com/711418/1858520 Lync 项目经验-02-共存迁移-Lync2013-TO-SFB 2015-规划02http://dynamic.blog.51cto.com/711418/1859143 Lync 项目经验-03-共存迁移-Lync2013-TO…

亿方云CEO程远:转型第一式:链接企业人与数据

传统企业一直在探讨如何做好互联网转型&#xff0c;那么互联网核心是什么&#xff1f;转型目标是什么&#xff1f;亿方云CEO程远在此次峰会上发表了自己看法&#xff0c;他认为快、人、连接是互联网核心基因&#xff0c;转型第一步就在于企业、人与数据的充分链接。中国企业的互…

Linux下Gcc 的编译过程

在linux下开发难免会用到gcc编译。GCC&#xff08;GNU Compiler Collection。GNU编译器套装&#xff09;&#xff0c;是由 GNU 开发的编程语言编译器。它是GNU编译器套装以GPL许可证所发行的自由软件&#xff0c;也是 GNU计划的关键部分。使用GCC编译程序时,编译过程能够被细分…

使用.NET简单实现一个Redis的高性能克隆版(七-完结)

译者注该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单、高性能兼容Redis协议的数据库的经历。首先这个"Redis"是非常简单的实现&#xff0c;但是他在优化这个简单"Redis"路程很有趣&#xff0c;也能给我们在从事性能优化工作时带来一些启…

解决 Vue 里 Script 标签首层不缩进 - VS Code

问题&#xff1a; 在 vscode 使用 vue 的时候&#xff0c;发现 script 标签首层不缩进&#xff1f;&#xff1f;&#xff1f; 下载扩展&#xff1a;prettier 解决方法一&#xff1a; 打开 setting.json文件 添加&#xff1a;"prettier.vueIndentScriptAndStyle": tru…

Android应用开发性能优化完全分析

1 背景 其实有点不想写这篇文章的&#xff0c;但是又想写&#xff0c;有些矛盾。不想写的原因是随便上网一搜一堆关于性能的建议&#xff0c;感觉大家你一总结、我一总结的都说到了很多优化注意事项&#xff0c;但是看过这些文章后大多数存在一个问题就是只给出啥啥啥不能用&am…