el-from中校验,如果某一项需要另一项填写才能校验

使用validateField

<el-form:model="params":rules="rules":scroll-to-error="true"ref="refrom"v-else><el-form-item label="用户姓名" prop="name"><el-input placeholder="请输入用户姓名" v-model="params.name"></el-input></el-form-item><el-form-item label="证件类型" prop="certificatesType"><el-selectstyle="width: 100%"placeholder="请选择证件类型"v-model="params.certificatesType"><el-optionv-for="(item,index) in arrType":key="index":label="item.name":value="item.value"/></el-select></el-form-item><el-form-item label="证件号码" prop="certificatesNo" ><el-input placeholder="请输入证件号码" v-model="params.certificatesNo"></el-input></el-form-item><el-form-item label="上传证件" prop="certificatesUrl"><!-- action:upload组件向服务器提交图片路径limit:照片墙约束图片个数on-exceed:超出约束数量的钩子--><el-uploadref="upload"v-model="params.certificatesUrl"action="/api/oss/file/fileUpload?fileHost=userAuah"limit="1"list-type="picture-card":on-exceed="handleExceed":on-success="handlesuccess":on-remove = 'handleremove':on-preview="handlePictureCardPreview"><imgstyle="width: 100%; height: 100%"src="../../../assets/images!auth_example.png"alt=""/></el-upload><el-dialog v-model="dialogVisible"><img w-full alt="Preview Image" :src="params.certificatesUrl" v-if="params.certificatesUrl"/></el-dialog></el-form-item><el-form-item><el-button type="primary" size="default" @click="submit">提交</el-button><el-button type="primary" size="default" @click="reset">重写</el-button></el-form-item></el-form>1,先给form表单绑定ref //创建form表单的实例const refrom = ref()2,给表单绑定rules校验const rules = {name: [{ validator: checkName, trigger: 'change',required: true }],certificatesType: [{ validator: checkcertificatesType,required: true }],certificatesUrl: [{ validator: checkcertificatesUrl, trigger: 'change',required: true }],certificatesNo: [{ validator: checkcertificatesNo, trigger: 'change' ,required: true }]}const checkcertificatesNo = (rule: any, value: any, callback: any) =>{if(params.certificatesType == ''){refrom.value.validateField('certificatesType',(errorMessage:any)=>{console.log(errorMessage,'errorMessage')})}console.log(params.certificatesType,'params.certificatesType')}3,开始自定义校验//自定义name校验const checkName = (rule: any, value: any, callback: any) =>{const res = /^[\u4e00-\u9fa5]+$/if(res.test(value)){callback()}else{callback('请输入正确的名字')}}//自定义证件类型校验const checkcertificatesType = (rule: any, value: any, callback: any) =>{if(value == 10 || value == 20){callback()}else{callback('请选择证件类型')}console.log(value,'value')}
//自定义校验图片
//  const checkcertificatesUrl = (rule: any, value: any, callback: any) =>{
//     console.log(params.certificatesType,'params.certificatesType')
//  }//自定义校验证件号码const checkcertificatesNo = (rule: any, value: any, callback: any) =>{//关键代码 validateField ,是一个函数,第一个填写要校验的某一项,第二个是一个函数,返回true和false,会自动触发certificatesType的校验规则,只需要在里面判断逻辑即可refrom.value.validateField('certificatesType',(errorMessage:any)=>{if(errorMessage == true){if(params.certificatesType == 10){const reg = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/if(reg.test(value)){callback() }else{callback('请输入正确的身份证')}}else{let hkb = /^\d{9}$/;if(hkb.test(value)){callback() }else{callback('请输入正确的户口本')}}}})console.log(params.certificatesType,'params.certificatesType')}

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

5、闪存简述

闪存基本原理 如下图所示浮栅晶体管&#xff0c;当判断是0或1的时候&#xff0c;是在源极加电&#xff0c;当源极和漏极能导通则为1&#xff0c;否则为0&#xff1b;源极和漏极能导通的前提是源极和漏极之间充满电子。 假如在控制极加电(电子具有向电性)&#xff0c;衬底的电…

[计网初识1] TCP/UDP

学习内容 1.TCP建立链接的3次握手&#xff0c;断开连接的4次挥手 2.TCP报文段组成 内容 1.TCP 建立连接的3次握手? 假设主动方是客户端&#xff0c;被动方是服务端。 第一次 客户端给服务端发送 “hello,我是客户端” (TCP段中 SYN1) 第二次 服务端给客户端发送"我接…

一站式短视频矩阵开发,高效托管!

短视频矩阵系统源码SaaS解决方案提供全面的开发服务&#xff0c;包括可视化视频编辑、矩阵式内容分发托管以及集成的多功能开发支持。 短视频矩阵&#xff1a;引爆您的数字营销革命 短视频矩阵系统是一套多功能集成解决方案&#xff0c;专为提升在短视频平台上的内容创作、管理…

C语言笔记31 •单链表经典算法OJ题-3.反转链表•

反转链表 1.问题 给你单链表的头节点 head&#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 2.代码实现&#xff1a; //3.反转链表 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> #include <assert.h>typedef int …

技术成神之路:设计模式(四)工厂方法模式

1.定义 工厂方法模式&#xff08;Factory Method Pattern&#xff09;是一种创建型设计模式&#xff0c;它提供了一种创建对象的接口&#xff0c;而不是通过具体类来实例化对象。工厂方法模式的主要作用是让子类决定实例化哪一个类&#xff0c;从而实现对象创建的延迟到具体子类…

4.2 存储管理

大纲 页式存储必考&#xff0c;段式存储看运气 页式存储 概念

迅为RK3588开发板RKNPU2项目实战2SORT目标追踪

1.介绍和视频演示2.在模拟器实现图片的目标追踪3.连板推理和嵌入式部署4.视频目标追踪的实现(python)5.C实现目标追踪性能强--iTOP-3588开发板采用瑞芯微RK3588处理器&#xff0c;是全新一代ALoT高端应用芯片&#xff0c;采用8nm LP制程&#xff0c;搭载八核64位CPU&#xff0c…

飞睿智能6公里WiFi图传接收模块,低延迟、抗干扰、高速稳定传输数据,无人机、农田远距离WiFi模块

在科技日新月异的今天&#xff0c;无线通信技术正以前所未有的速度发展&#xff0c;不仅改变了我们的生活方式&#xff0c;还为企业带来了前所未有的商业机遇。今天&#xff0c;我要向大家介绍一款飞睿智能的产品——6公里WiFi图传接收模块&#xff0c;它以其高性能、稳定的传输…

ES13的4个改革性新特性

1、类字段声明 在 ES13 之前,类字段只能在构造函数中声明, ES13 消除了这个限制 // 之前 class Car {constructor() {this.color = blue;this.age = 2

SpringBoot实现简单AI问答(百度千帆)

第一步&#xff1a;注册并登录百度智能云&#xff0c;创建应用并获取自己的APIKey与SecretKey&#xff0c;参考网址&#xff1a; 点击去百度智能云 第二步&#xff1a;引入千帆的pom依赖 <dependency><groupId>com.baidubce</groupId><artifactId>q…

python库(9):prettytable库快速实现ASCII表格

下面介绍一个快速制作ASCII表格库——prettytable&#xff0c;可以方便地制作简单表格。 1 安装prettytable pip install -i https://pypi.tuna.tsinghua.edu.cn/simple prettytable 结果如下&#xff1a; 2 代码实例 from prettytable import PrettyTable table PrettyTa…

CloudCanal监控告警配置问题

前言&#xff1a; 近日有几个库需要同步到另外一台机做备份&#xff0c;想起Cloudcanal 比较方便&#xff0c;那就尝试用下 Cloudcanal 做同步&#xff0c;但是同步任务建立好之后&#xff0c;需要做监控&#xff0c;不然那天停止同步了都不知道&#xff0c;真所谓有应用必上监…

CVE-2024-6387Open SSH漏洞彻底解决举措(含踩坑内容)

一、漏洞名称 OpenSSH 远程代码执行漏洞(CVE-2024-6387) 二、漏洞概述 Open SSH是基于SSH协议的安全网络通信工具&#xff0c;广泛应用于远程服务器管理、加密文件传输、端口转发、远程控制等多个领域。近日被爆出存在一个远程代码执行漏洞&#xff0c;由于Open SSH服务器端…

高可用hadoop分布式节点的扩容

解决方案 修改hdfs-site.xml 文件 原xml文件 <?xml version"1.0" encoding"UTF-8"?> <?xml-stylesheet type"text/xsl" href"configuration.xsl"?> <!--Licensed under the Apache License, Version 2.0 (th…

华盈生物获得美国Akoya认证的PhenoCycler-Fusion(原CODEX)技术服务商

华盈生物获得美国Akoya认证的PhenoCycler-Fusion&#xff08;原CODEX&#xff09;技术服务商 华盈生物获得美国Akoya公司认证的PhenoCycler-Fusion&#xff08;原CODEX&#xff09;空间单细胞蛋白组技术服务商&#xff0c;并进入该技术的全球CRO服务提供者网络&#xff1a;htt…

java设计模式(十三)模版方法模式(Template Method Pattern)

1、模式介绍&#xff1a; 模版方法模式是一种行为型设计模式&#xff0c;定义了一个操作中的算法框架&#xff0c;将一些步骤延迟到子类中实现。模版方法使得子类可以在不改变算法结构的情况下&#xff0c;重新定义算法中的某些步骤。 2、应用场景&#xff1a; 算法框架固定…

Python酷库之旅-第三方库Pandas(013)

目录 一、用法精讲 31、pandas.read_feather函数 31-1、语法 31-2、参数 31-3、功能 31-4、返回值 31-5、说明 31-6、用法 31-6-1、数据准备 31-6-2、代码示例 31-6-3、结果输出 32、pandas.DataFrame.to_feather函数 32-1、语法 32-2、参数 32-3、功能 32-4、…

小白学c嘎嘎(第二天)入门基础下

温馨提醒&#xff1a;本篇文章起&#xff0c;文章内容排版将更新&#xff0c;层层深入 基础知识 回顾 引用的语法格式&#xff1a;类型& 引⽤别名 引⽤对象; 引用特性 1. 引⽤在定义时必须初始化 2. ⼀个变量可以有多个引⽤ 3. ⼀旦引⽤⼀个实体&#xff0c;再不…

android Dialog全屏沉浸式状态栏实现

在Android中&#xff0c;创建沉浸式状态栏通常意味着让状态栏背景与应用的主题颜色一致&#xff0c;并且让对话框在状态栏下面显示&#xff0c;而不是浮动。为了实现这一点&#xff0c;你可以使用以下代码片段&#xff1a; 1、实际效果图&#xff1a; 2、代码实现&#xff1a;…

【解读大模型(LLM)的token】

文末有福利&#xff01; 当人们谈论大型语言模型的大小时&#xff0c;参数会让我们了解神经网络的结构有多复杂&#xff0c;而token的大小会让我们知道有多少数据用于训练参数。 正像陆奇博士所说的那样&#xff0c;大型语言模型为从文本生成到问题回答的各种任务提供了令人印象…