Vue2中使用ElementUI组件Form组件的校验validate

news2025/1/13 15:39:49

先准备一些el-form元素 这里面el-form中:model(v-bind:model)是单项绑定的,如果你写成了v-model=""可能会出现校验没有效果的情况。

 这是校验过后的结果了 

现在开始使用下吧! 

1.在el-form中绑定一个ref,名字自拟,后续触发检验结果需要使用到它

2.准备rules对象,里面装校验的内容

3.需要校验的元素上需要加上prop,这个是对应校验的内容的。注意的是 如果是双向绑定的如(input)的prop的名字必须和绑定的元素名字一样,比如我的收集数据为SkuForm.skuName那么prop值为skuName就好了,否则有可能校验不起来

<el-form ref="SkuForm" label-width="100px" :rules="rules" :model="SkuForm">
        <el-form-item label="SPU名称" prop="prop">
          <span>{{ spu.spuName }}</span>
        </el-form-item>
        <el-form-item label="SKU名称" prop="skuName">
          <el-input placeholder="请输入SKU名称" v-model="SkuForm.skuName"></el-input>
        </el-form-item>
        <el-form-item label="价格(元)" prop="price">
          <el-input placeholder="价格(元素)" v-model="SkuForm.price"></el-input>
        </el-form-item>
        <el-form-item label="重量(千克)" prop="weight">
          <el-input placeholder="重量(千克)" v-model="SkuForm.weight"></el-input>
        </el-form-item>

        <el-form-item label="规格说明" prop="skuDesc">
          <el-input type="textarea" rows="4" v-model="SkuForm.skuDesc"></el-input>
        </el-form-item>

        <el-form-item label="图片列表" prop="skuImageList">
          <!-- :data="tableData" -->
          <el-table style="width: 100%" border :data="skuImageList" @selection-change="changeSelect" ref="ImageTable"
            :highlight-current-row="true">
            <el-table-column type="selection" width="55" prop="prop">
            </el-table-column>
            <el-table-column label="图片" prop="prop">
              <template slot-scope="{row,$index}">
                <img :src="row.imgUrl" style="width:100px;height:100px" />
              </template>
            </el-table-column>
            <el-table-column label="名称" prop="imgName">
            </el-table-column>
            <el-table-column label="操作" prop="caozuo">
              <template slot-scope="{row,$index}">
                <el-button type="primary" v-if="row.isDefault == 0" @click="changeDefault(row)">设置默认</el-button>
                <el-button v-else>默认</el-button>
              </template>
            </el-table-column>

          </el-table>
        </el-form-item>

        <el-form-item>
          <el-button type="primary" size="medium" @click="saveSku">保存</el-button>
          <el-button size="medium" @click="Cancel">取消</el-button>
        </el-form-item>
      </el-form>

存储的数据

data(){
    //自定义校验--校验图片有没有选择 默认图片表示为1
     var checkimageList = (rule, value, callback) => {
      let result = false; 
      if(this.imageList) {
        //如果没有默认图片,就返回true不放行。有默认图片就返回false放行
        result = this.imageList.every(item => {
          return item.isDefault != 1
        })
      }else{
        //没有选择的情况也是不放行的
        result = true
      }
      
      if (result) {
        callback("还没有选择默认图片哦~")
      }
      callback()
 
      }
    return{

        rules: {
        // 如果是双向绑定的如(input)的prop的名字必须和绑定的元素一样
        skuName: [
          { required: true, message: 'SkuName名称不能为空哦~', trigger: 'blur' },
            ],
        price: [
          { required: true, message: '请输入价格~', trigger: 'blur' },
        ],

        weight: [
          { required: true, message: '请输入重量~', trigger: 'blur' },
        ],
        skuDesc: [
          { required: true, message: '请输入描述~', trigger: 'blur' },
        ],

        // 检查图片是否有选择
        skuImageList: [
          { required: true,validator: checkskuImageList , trigger: 'change' }
        ]
      },

      SkuForm: {
        skuName: '',
        spuId: 0,
        weight: '',
        price: '',
        skuDesc: '',
      },

      //保存图片的
      skuImageList: []
    },
    

}

 this.$refs.SkuForm.validate((valida) => {
        if (valida) {
             //如果以上校验通过,则会返回true
            //执行其他业务
        }
      })

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

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

相关文章

【数据分析 - 基础入门之NumPy②】Jupyter Notebook安装及使用

知识目录 前言一、Jupyter Notebook安装使用1.1 Jupyter Notebook的三种打开方式1、点击Anaconda Prompt打开2、点击Jupyter Notebook打开3、使用Powershell打开 1.2 Jupyter Notebook的两种键盘输入模式1、编辑模式2、命令模式 二、Jupyter Notebook魔法命令2.1 查看帮助文档2…

2023-07-06:RabbitMQ中的AMQP是什么?

2023-07-06&#xff1a;RabbitMQ中的AMQP是什么&#xff1f; 答案2023-07-06&#xff1a; AMQP AMQP&#xff08;Advanced Message Queuing Protocol&#xff09;是一个应用层协议的开放标准&#xff0c;旨在设计面向消息的中间件。基于AMQP协议的客户端和消息中间件可以自由…

Mysql中IP地址如何在数据库中存储

用无符号的32位整数存储&#xff0c;不要用字符串存储ip 为什么呢&#xff1f; 在Mysql中&#xff0c;当存储ipv4地址的时候&#xff0c;应该使用32位的无符号&#xff08;int unsigned&#xff09;来存储ip地址&#xff0c;而不是使用字符串&#xff0c;用int unsigned类型存…

4-Spring cloud之搭建Ribbon负载均衡——服务器上实操(下)

4-Spring cloud之搭建Ribbon负载均衡——服务器上实操&#xff08;下&#xff09; 1. 前言1.1 Ribbon负载均衡架构图 2. Ribbon自带的负载均衡2.1 Ribbon自带的负载均衡算法2.2 自带负载均衡之间的切换 3. Ribbon自定义负载均衡3.1 自定义Ribbon负载均衡&#xff08;简单试用&a…

【IMX6ULL - LOGO替换】根文件系统主机名logo替换教程

1、修改linux主机的配置文件/etc/hostname里的主机名 2、重启 reboot

2023电商购物网站有哪些知名和靠谱的?

最近几年&#xff0c;人们的消费方式发生了极大的改变&#xff0c;在这种趋势之下&#xff0c;很多企业都开始着手搭建自己的网购平台&#xff0c;下面是小编盘点的国内市场上较为出名的网购平台&#xff0c;大家可以借鉴其运营模式! 1、淘宝网 在中国&#xff0c;淘宝网可以说…

推荐这10款好用的产品设计软件,轻松提效

在现代技术飞速发展的时代&#xff0c;产品设计是创新和成功的关键。本文将向您推荐10款顶级产品设计软件&#xff0c;为您的设计过程增添灵感和效率。 1、即时设计 即时设计是一个基于云的产品设计协作一体化工具&#xff0c;具有很强的功能和灵活性&#xff0c;它提供了全面…

详细解读Sui Gas运作机制和其他你不知道的细节

Sui的Gas费模型使链上交互费用变得可预测而且更低廉&#xff0c;这两个关键特征对面向全球范围内的娱乐和实用apps的基础设施十分关键。区块链的Gas费是指处理事务需要支付的价格&#xff0c;用于补偿和奖励支持网络运行的服务商。 通常&#xff0c;用户支付Gas费来执行网络上…

Webpack打包ts文件

安装依赖包&#xff1a; npm i -D webpack webpack-cli typescript ts-loader 配置webpack配置文件&#xff08;webpack.config.js&#xff09;&#xff1a; //webpack中所有的配置文件信息都得写在module.exports中 module.exports{//指定入口文件entry:./src/index.ts//指定…

terminal 终端Ctrl+Shfit+E键与搜狗输入法冲突Linux

下载完搜狗输入法后&#xff0c;发现CtrlShfitE不能在终端分屏了&#xff0c;原因是和搜狗的快捷键冲突了&#xff0c;把搜狗的禁用了或者换成其它快捷键即可 界面右上角打开搜狗拼音&#xff0c;点击属性设置 把勾去掉或者换其它快捷键

eladmin环境搭建

1、参考这里的简介、快速了解、快速开始 简介 | ELADMIN 在线文档 2、后台我用的是Idea&#xff0c;要记得安装jdk、下载maven&#xff0c;Idea中要记得核对Settings、Project Structure的jdk、maven相关配置。同时也要核对数据库配置是否是好的&#xff0c;数据库是否能连接…

不同ts文件下,提示变量名重复的问题解决

同一个目录的不同文件下使用同一个变量名称出现报错 是因为ts的文件默认是全局文件 发现即使在标签栏关闭 也无法解决&#xff0c; 可以尝试在 报错的文件上加上 export{}&#xff0c;即可完美解决

实战 |记一次简单渗透测试实战

声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;鹏组安全及文章作者不为此承担任何责任。 在进行渗透测试时&#xff0c;首先需要进行的是信…

系统分析师下午案例真题及解析(2022-2020年)

请点击↑关注、收藏&#xff0c;本博客免费为你获取精彩知识分享&#xff01;有惊喜哟&#xff01;&#xff01; 2022年案例真题 真题1 阅读以下关于软件系统分析与建模的叙述&#xff0c;在答题纸上回答问题1至问题3。 【说明】 某软件公司拟开发一套博客系统&#xf…

Java使用ClassLoader读取外部json文件

我们有时候会遇到这样一种业务场景&#xff1a;某个对象是变化的&#xff0c;在不同项目的部署中&#xff0c;可能需要更改对象中的某个属性&#xff0c;这时如果我们将该对象写在代码里&#xff0c;这样不仅寻找不便&#xff0c;部署后也不能随便修改&#xff08;修改后又要重…

9个面试模板:招聘经理的问题和指南

有效的面试让我们更好的提升招聘效率&#xff0c;招聘经理和招聘人员可以使用面试模板确保高效快捷地进行面试。 面试模板有助于构建面试流程&#xff0c;为向候选人提问和记录他们的答案创建一个一致的框架。支持不同公司自定义面试模版&#xff0c;面试模版还可以更轻松地对…

Win10开始菜单打不开怎么办?Win10开始菜单打不开解决方法

Win10开始菜单打不开怎么办&#xff1f;当用户在Win10系统上遇到开始菜单打不开的问题时&#xff0c;可能会导致无法方便地访问和运行应用程序、设置等功能&#xff0c;这时候用户可以重启一下Win10电脑的任务管理器来解决问题&#xff0c;以下就是Win10开始菜单打不开解决方法…

撕去“械字号”标签,敷尔佳靠营销还能走多远?

回顾刚刚过去的六月&#xff0c;美妆护肤板块回暖趋势继续保持。 据数据显示&#xff0c;6 月淘系、抖音合计美妆GMV同比增长约13%&#xff0c;其中&#xff0c;护肤、彩妆分别同比增长14%、11%。而据美加漾科技披露的《2023年618护肤市场大数据调研》显示&#xff0c;护肤品市…

一键安装docker及docker-compose

1、创建docker存放相关文件目录&#xff0c;该目录可自己定义。2、添加相关文件&#xff0c;可在网盘提取。其中docker-20.10.9.tgz和docker-compose为安装包&#xff0c;也可根据需要在网上下载&#xff0c;注意docker-compose安装包下载后需要改名为docker-compose。 链接&am…

【正点原子STM32连载】第五十一章 汉字显示实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html# 第五…