elementUI 非表单格式的校验

 在普通表单中对输入框、选择框都有校验案例。

但是在自定义非空中如何进行校验官网并没有说明

关键代码 clearValidate 方法清除校验

 this.$refs.formValue.clearValidate('signinimg')

使用案例

<template><div class="stylebg"><Tabs icons="el-icon-shopping-bag-2" :arrs="tabs" /><!--表格  --><div style="margin-top: 20px"><el-form ref="formValue"  label-width="120px" :rules="rules" :model="formValue"><el-form-item label="标题" prop="title"><el-input v-model="formValue.title" placeholder="请输入标题"></el-input></el-form-item><el-form-item label="单选图"><div class="imagelist"><div class="imagelist imgbox" @click="uploadimg('img','1')" v-if="formValue.img"><el-image class="img" :src="formValue.img" fit="cover" ></el-image></div>  <div  style="border: 1px dashed #d9d9d9;" class="avatar-uploader"   @click="uploadimg('img','1')" v-else><i class="el-icon-plus" style="width: 100px;height: 100px;display: flex;align-items: center;justify-content: center;"></i></div></div></el-form-item><el-form-item label="多选图"><div class="imagelist"><div v-for="(item, i) in formValue.imgs" :key="i" class="imagelist imgbox"><el-image class="img" :src="item" fit="cover" ></el-image><img src="@/assets/close.png" class="close" @click="handleRemove(i)"/></div>  <div  style="border: 1px dashed #d9d9d9;" class="avatar-uploader"   @click="uploadimg('imgs','2')"><i class="el-icon-plus" style="width: 100px;height: 100px;display: flex;align-items: center;justify-content: center;"></i></div></div></el-form-item><el-form-item label="电子签名" prop="signinimg"><div  @click="signinVisible=true" style="width: 200px;background-color: #d9d9d9;"><el-image :src="formValue.signinimg" style="width: 200px;height: 100px;display: flex;align-items: center;justify-content: center;color: #999;"><div slot="error" > 点击签名 </div></el-image></div></el-form-item><el-form-item label=""><el-button type="primary" size="small"  @click="upform">确定</el-button><el-button type="primary" size="small"  @click.native="back">返回</el-button></el-form-item></el-form></div><el-dialog title="选择图片" :visible.sync="dialogVisible" width="900px"><uploadDialog  v-if="dialogVisible" @getPic="getPic" :chosetype="picChoseType"></uploadDialog></el-dialog><el-dialog title="电子签名" :visible.sync="signinVisible" width="700px"><signinDia @setsignin="setsignin"></signinDia></el-dialog></div></template><script>import wueditor from '@/components/wueditor.vue'; // ES6 Moduleimport {addcaseAPI,getcaseinfoAPI,updatecaseAPI} from "@/api/article"import uploadDialog from "@/components/uploadDialog.vue"import signinDia from "@/components/signinDia.vue"export default {components: {wueditor,uploadDialog,signinDia},data() {return {formValue:{img:"",imgs:[],status:0},headers:{},tabs: ["轮播图管理", "添加轮播图"],dynamicTags: [],dialogVisible: false,signinVisible: false,inputValue: '',picTit:"",picChoseType:"1",rules:{title: [ { required: true, message: '名称不能为空', change: 'blur', }],signinimg: [ { required: true, message: '电子签名不能为空'  }],}};},created() {this.headers={Authorization:"Bearer " +localStorage.getItem('token')}this.getinfo()},methods: {upform(){this.$refs.formValue.validate((valid) => {if (valid) {alert("success")}else{if(this.formValue.signinimg) this.$refs.formValue.clearValidate('signinimg')}})// if (this.$route.query.id) {//   updatecaseAPI(this.formValue).then(res=>{//     this.$message.success("成功")//     this.$router.back()//   })    //   return// }// addcaseAPI(this.formValue).then(res=>{//   this.$message.success("成功")//   this.$router.back()// })    },setsignin(img){this.formValue.signinimg=imgthis.signinVisible=falsethis.$refs.formValue.clearValidate('signinimg')},uploadimg(picTit,picChoseType){this.dialogVisible=truethis.picTit=picTitthis.picChoseType=picChoseType},getPic(images){console.log(images)switch(this.picTit){case "img":this.formValue.img=images.urlbreakcase "imgs":var list=this.formValue.imgsthis.formValue.imgs=list.concat(images.map(item=> item.url))break}this.dialogVisible=false},handleRemove(i) {this.formValue.imgs.splice(i,1) },handleClose(tag) {this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);},showInput() {this.inputVisible = true;this.$nextTick(_ => {this.$refs.saveTagInput.$refs.input.focus();});},handleInputConfirm() {let inputValue = this.inputValue;if (inputValue) {this.dynamicTags.push(inputValue);}this.inputVisible = false;this.inputValue = '';},getinfo(){var id=this.$route.query.idif (id) {getcaseinfoAPI({id}).then(res=>{this.formValue=res})}},handleAvatarSuccess2(res){this.formValue.img = res.data  console.log(res.data  )},back(){this.$router.back()},}};</script><style  lang="less">.el-tag + .el-tag {margin-left: 10px;}.button-new-tag {margin-left: 10px;height: 32px;line-height: 30px;padding-top: 0;padding-bottom: 0;}.input-new-tag {width: 90px;margin-left: 10px;vertical-align: bottom;}.form {margin: 15px 0;}.page {background-color: #fff;padding: 10px;.el-pagination .btn-next,.el-pagination .btn-prev {background-color: #ffffff !important;}}.imagelist{display: flex;align-items: center;.imgbox{    border: 1px solid #d9d9d9;position: relative;margin-right: 20px;.img{width: 100px;height: 100px;border-radius: 6px;}.close{width: 20px;height: 20px;position: absolute;top: -10px;right: -10px;cursor: pointer;}}
}</style>

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

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

相关文章

MySQL原理探索——31 误删数据后除了跑路,还能怎么办

在前面几篇文章中&#xff0c;介绍了 MySQL 的高可用架构。当然&#xff0c;传统的高可用架构是不能预防误删数据的&#xff0c;因为主库的一个 drop table 命令&#xff0c;会通过 binlog 传给所有从库和级联从库&#xff0c;进而导致整个集群的实例都会执行这个命令。 虽然我…

blender 阵列修改器

效果 tab 键进入编辑模式&#xff0c;全选制作好的模型&#xff0c;gx 移动模型置于游标原点&#xff1b; 阵列修改器&#xff1a; 相对偏移&#xff1a;以物体的长宽高为比例&#xff0c;调整x y z 的数值&#xff0c;在 x y z 方向上做不同比例的偏移&#xff1b; 恒定偏移…

C#安装.Net平台科学计算库Math.Net Numerics

工作的时候需要使用到C#的Math.Net库来进行计算。 Math.Net库涵盖的主题包括特殊函数&#xff0c;线性代数&#xff0c;概率模型&#xff0c;随机数&#xff0c;插值&#xff0c;积分&#xff0c;回归&#xff0c;优化问题等。 这里记录一下&#xff0c;安装Math.Net库的过程…

Linux 部署Vue+Spring Boot项目

部署Vue Spring Boot项目 安装redis wget http://download.redis.io/releases/redis-4.0.8.tar.gz tar -zxvf redis-4.0.8.tar.gz yum install gcc-c make make install如果出现下面的问题&#xff1a; yum install tcl make testredis-server myconifg/redis.conf输入客户端…

[JVM] 2. 类加载子系统(1)-- 内存结构、类加载子系统概述

一、内存结构 类加载子系统的职责是&#xff1a;加载class文件到内存中。 完整的内存结构如下&#xff1a; 二、类加载过程 类加载过程总体分为Loading&#xff08;加载&#xff09;、Linking&#xff08;链接&#xff09;、Initialization&#xff08;初始化&#xff09;三…

HarmonyOS学习路之方舟开发框架—学习ArkTS语言(基本语法 五)

Styles装饰器&#xff1a;定义组件重用样式 如果每个组件的样式都需要单独设置&#xff0c;在开发过程中会出现大量代码在进行重复样式设置&#xff0c;虽然可以复制粘贴&#xff0c;但为了代码简洁性和后续方便维护&#xff0c;我们推出了可以提炼公共样式进行复用的装饰器St…

一文读懂 MySQL 中的索引

文章目录 1. 索引概述1.1 索引概述1.2 优点1.3 缺点1.6 常见索引概念1.6.1 聚簇索引1.6.2 二级索引&#xff08;辅助索引、非聚簇索引&#xff09;1.6.3 联合索引 1.8 MyISAM索引的原理1.9 MyISAM 与 InnoDB对比1.10 索引的代价 2. 索引的创建与设计原则2.1 索引的声明与使用2.…

一文9个步骤带你从0到1入门接口自动化测试!

1.请问你是如何做接口测试的&#xff1f; 大体来说&#xff0c;经历以下过程&#xff1a;接口需求调研、接口测试工具选择、接口测试用例编写、接口测试执行、接口测试回归、接口测试自动化持续集成。 具体来说&#xff0c;接口测试流程分成以下九步&#xff1a; 第一步&…

6.3.6 利用Wireshark进行协议分析(六)----网页提取过程的协议分析

6.3.6 利用Wireshark进行协议分析&#xff08;六&#xff09;----网页提取过程的协议分析 利用Wireshark捕获网页访问过程中产生的应用协议报文&#xff0c;还原Web服务中报文的交互过程&#xff0c;为了防止网页直接从本地缓存中获取&#xff0c;我们首先需要清空浏览器保存的…

el-date-picker 宽度溢出浏览器问题

原文链接&#xff1a; el-date-picker 宽度溢出浏览器问题 问题由来 <el-date-picker v-model"Time" type"datetimerange"range-separator"至"start-placeholder"年/月/日 时:分:秒"end-placeholder"年/月/日 时:分:秒"…

Js: 读取数据并动态生成表格(读取新数据时,应该删除之前已经渲染出来的数据)

前言 使用JS读取数据并动态生成表格&#xff0c;但是发现在读取新一轮的数据时&#xff0c;新数据是在之前已经渲染的数据后面进行追加。因此需要解决的问题是&#xff1a;在读取新数据之前&#xff0c;把之前已经渲染的数据进行清空。 解决 1、首先写出表格的表头和主干 &…

堆排序+TopK问题

本期带大家学习堆排序TopK问题&#x1f308;&#x1f308;&#x1f308; 1、堆排序 堆排序&#xff0c;是根据堆的结构而设计出的一种排序算法&#xff0c;其时间复杂度&#xff1a;O(N * logN)&#xff0c;空间复杂度&#xff1a;O(1)。 堆排序的前提是需要 构建一个堆&…