Vue-Element-Admin项目学习笔记(8)配置表单校验规则

news2024/10/1 17:23:54

前情回顾:

vue-element-admin项目学习笔记(1)安装、配置、启动项目
vue-element-admin项目学习笔记(2)main.js
文件分析
vue-element-admin项目学习笔记(3)路由分析一:静态路由
vue-element-admin项目学习笔记(4)路由分析二:动态路由及permission.js
vue-element-admin项目学习笔记(5)路由分析三:动态路由匹配逻辑
Vue-Element-Admin项目学习笔记(6)Vuex状态管理
Vue-Element-Admin项目学习笔记(7)用Node.js写一个简单后端接口

1、表单校验的必要性(永远不要相信用户传过来的数据)

表单校验不但能检查用户输入的无效或者错误数据,还能检查用户遗漏的必选项;而服务器端的验证则是将页面提交到服务器处理,服务器上的另一个包含表单的页面先执行对表单的验证,然后再返回相应结果到客户端,它的缺点是每一次验证都要经过服务器,不但消耗时间长,而且会大大增加服务器的负担。在客户端进行验证,能把服务器端的任务分给多个客户端去完成,从而减轻服务器端的压力,让服务器专门做其他更重要的事情。

2、Vue-Element-Admin的表单校验

我们过去写表单的时候,都是自己手写一个校验规则,在表单提交的时候进行检查,以避免一些空值、非法值、预料外的值被提交。

由于Vue-Element-Admin框架是基于elementUI的,它集成了自己的校验规则,使用起来更加方便。

在这里插入图片描述
通过官方文档可以看到,它在表单身上增加了一个绑定属性rules,是一个对象,我们只需要配置这个对象,即可完成表单校验。

3、示例代码

以我自建某一个组件为例

temple

<template>
  <div class="add">
  <!-- :rules="rules" 这里就是配置校验规则的,我们定义了一个对象rules -->
    <el-form  :rules="rules" ref="form" :model="stuForm" label-width="80px">
    <el-row style="margin-top: 30px;">
      <el-col :span="24">
        <el-form-item label="学生姓名" prop="name">
          <el-input style="width:200px;" v-model="stuForm.name" placeholder="请输入内容"></el-input>
       </el-form-item>
      </el-col>
    </el-row>

    <el-row style="margin-top: 30px;">
      <el-col :span="24">
        <el-form-item label="家庭住址" prop="address">
           <el-input style="width:200px;" v-model="stuForm.address" placeholder="请输入内容"></el-input>
        </el-form-item>
      </el-col>
    </el-row>

    <el-row style="margin-top: 30px;">
      <el-col :span="24">
        <el-form-item label="入校日期"> 
        <el-date-picker
          v-model="stuForm.rxrq"
          type="date"
          placeholder="选择日期">
        </el-date-picker>
      </el-form-item>
      </el-col>
    </el-row>
   
 
 <el-row style="margin-left:60px;margin-top:60px;">
    <el-col :span="24">
      <el-button type="primary">提交</el-button>
      <el-button>重置</el-button>

    </el-col>
 </el-row>

</el-form>
  </div>
</template>

在这里插入图片描述
script

<script>
export default {
  name: 'StudentAdd',
  data(){
    return{
      imageUrl: '',
      stuForm:{
          name:''
      },
      // 这里配置我们的校验规则对象rules,注意,是在data中
      rules: {
          name: [
            { required: true, message: '请输入学生姓名', trigger: 'blur' },
            {pattern:/[\u4e00-\u9fa5]{2,5}/,   message: '长度在 2 到 5 个中文汉字', trigger: 'blur' }
            // {min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
          ],
          address: [
            { required: true, message: '请输入学生家庭住址', trigger: 'blur' },
            {min: 6, max: 20, message: '长度在 6 到 20 个字符', trigger: 'blur' }
          ],
          region: [
            { required: true, message: '请选择活动区域', trigger: 'change' }
          ],
          date1: [
            { type: 'date', required: true, message: '请选择日期', trigger: 'change' }
          ],
          date2: [
            { type: 'date', required: true, message: '请选择时间', trigger: 'change' }
          ],
          type: [
            { type: 'array', required: true, message: '请至少选择一个活动性质', trigger: 'change' }
          ],
          resource: [
            { required: true, message: '请选择活动资源', trigger: 'change' }
          ],
          desc: [
            { required: true, message: '请填写活动形式', trigger: 'blur' }
          ]
        }
    }
  }
}
</script>

4、规则说明

  • required 必填

  • message 未通过校验的提示信息

  • trigger 触发条件 (change||blur):改变的时候 或 失去焦点的时候

  • min 最小值、max 最大值

  • len 精准长度 (优先级高于min,max)

  • enum 枚举中存在该值 (type必须为enum类型)
    role: {type: "enum", enum: ['admin', 'user', 'guest']}

  • pattern 正则表达式 (必须加 required: true)
    如:必须输入中文
    {pattern:/[\u4e00-\u9fa5]{2,5}/, message: '长度在 2 到 5 个中文汉字', trigger: 'blur' }

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

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

相关文章

软考:中级软件设计师:校验码,汉明码纠错,信息位L和校验位r的关系

软考&#xff1a;中级软件设计师:校验码&#xff0c;汉明码纠错 提示&#xff1a;系列被面试官问的问题&#xff0c;我自己当时不会&#xff0c;所以下来自己复盘一下&#xff0c;认真学习和总结&#xff0c;以应对未来更多的可能性 关于互联网大厂的笔试面试&#xff0c;都是…

Linux通过crontab定时执行脚本任务

Linux通过crontab定时执行脚本任务 前言1. 创建写入脚本2. 设置执行权限3. 添加定时任务定时任务语法格式每分钟写入一条信息到指定文件 4. 查看日志文件5. 定时执行脚本的作用和用途 前言 在Linux中可以使用crontab来定时执行脚本。crontab是一个用于管理定时任务的工具&…

我这样回答多线程并发,面试官直接惊叹!

目录 前言&#xff1a; 1.单线程执行 2、多线程执行 3.守护线程 4.阻塞线程 前言&#xff1a; 多线程并发是一种处理任务的方式&#xff0c;它可以在同一时间内执行多个任务。多线程并发通常应用于需要同时处理多个任务或同时运行多个程序的情况下。 1.单线程执行 Pyth…

便携式水污染检测设备可以分析多少项污水指标

便携式水污染检测设备可以分析多少项污水指标&#xff08;以下只是一部分&#xff09; 水质检测仪可检测范围 1、饮用水检测&#xff1a;生活用水&#xff08;自来水&#xff09;、&#xff08;瓶、桶装&#xff09;矿泉水、天然矿泉水等&#xff1b; 2、工业用水检测&#xf…

人机融合智能的现状与展望

本篇文章是博主在人工智能等领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅解。文章分类在学习摘录和笔记专…

【开源库剖析】Shadow v2.3.0 源码解析

作者&#xff1a;Stan_Z 一、框架介绍 Shadow是19年腾讯开源的自研Android插件化框架&#xff0c;经过线上亿级用户量检验。 Shadow不仅开源分享了插件技术的关键代码&#xff0c;还完整的分享了上线部署所需要的所有设计。 优点&#xff1a; 1&#xff09;复用独立安装app源…

Python可视化库之Matplotlib详解及使用方法

Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型的2D图表和一些基本的3D图表。本文主要推荐一个学习使用Matplotlib的步骤。 基本前提 如果你除了本文之外没有任何基础,建议用以下几个步骤学习如何使用matplotlib: 学习基本的matplotlib术语,尤其是…

第二十二章Java一维数组的定义、赋值和初始化

当数组中每个元素都只带有一个下标时&#xff0c;这种数组就是“一维数组”。一维数组&#xff08;one-dimensional array&#xff09;实质上是一组相同类型数据的线性集合&#xff0c;是数组中最简单的一种数组。 数组是引用数据类型&#xff0c;引用数据类型在使用之前一定要…

Reactor的概念

一、Reactor的概念 ​ Reactor模式是一种事件驱动模式&#xff0c;由一个或多个并发输入源&#xff08;input)&#xff0c;一个消息分发处理器&#xff08;Initiation Dispatcher&#xff09;&#xff0c;以及每个消息对应的处理器&#xff08;Request Handler&#xff09;构成…

Linux安装nodejs

一、下载包 https://registry.npmmirror.com/binary.html?pathnode/ 比如&#xff1a;10.9.0 https://registry.npmmirror.com/binary.html?pathnode/v10.9.0/ 按需下载 https://registry.npmmirror.com/-/binary/node/v10.9.0/node-v10.9.0-linux-x64.tar.gz 二、上传到…

使用Nginx+Lua实现自定义WAF(Web application firewall)

转载https://github.com/unixhot/waf WAF 使用NginxLua实现自定义WAF&#xff08;Web application firewall&#xff09; 功能列表&#xff1a; 支持IP白名单和黑名单功能&#xff0c;直接将黑名单的IP访问拒绝。 支持URL白名单&#xff0c;将不需要过滤的URL进行定义。 支持…

解析vcruntime140.dll文件,缺失了要怎么去修复?

在计算机的世界中&#xff0c;vcruntime140.dll是一个重要的动态链接库文件。然而&#xff0c;有时候这个文件可能会引发一系列问题&#xff0c;影响应用程序的正常运行。如果你缺少了vcruntime140.dll&#xff0c;那么你的程序就会打不开&#xff0c;今天我们一起来聊聊vcrunt…

408数据结构第四章

串 定义存储结构模式匹配 小题形式考&#xff0c;比较简单&#xff0c;拿两个题来练手就会了 定义 字符串简称串 由零个或多个字符组成的有限序列 S是串名n称为串的长度&#xff0c;n0称为空串 串中多个连续的字符组成的子序列称为该串的子串 串的逻辑结构和线性表极为相似&am…

ByteHouse+Apache Airflow:高效简化数据管理流程

Apache Airflow 与 ByteHouse 相结合&#xff0c;为管理和执行数据流程提供了强大而高效的解决方案。本文突出了使用 Apache Airflow 与 ByteHouse 的主要优势和特点&#xff0c;展示如何简化数据工作流程并推动业务成功。 主要优势 可扩展可靠的数据流程&#xff1a;Apache Ai…

使用MASA Stack+.Net 从零开始搭建IoT平台 第五章 使用时序库存储上行数据

目录 前言分析实施步骤时序库的安装解决playload没有时间戳问题代码编写 总结 前言 我们可以将设备上行数据存储到关系型数据库中&#xff0c;我们需要两张带有时间戳的表&#xff08;最新数据表 和 历史数据表&#xff09;&#xff0c;历史数据表存储所有设备上报的数据&…

iptables详解

iptables简介 netfilter/iptables&#xff08;简称为iptables&#xff09;组成Linux平台下的包过滤防火墙&#xff0c;完成封包过滤、封包重定向和网络地址转换&#xff08;NAT&#xff09;等功能。 iptables 规则&#xff08;rules&#xff09;其实就是网络管理员预定义的条…

神通数据库X86架构适配DJANGO317指南

制作神通数据库镜像 1&#xff09;、下载docker.io/centos:7.9.2009镜像&#xff0c;docker pull docker.io/centos:7.9.2009 2)、运行一个容器&#xff0c;docker run -itd --name shentong -p 2003:2003 --privilegedtrue --restartalways -v /sys/fs/cgroup:/sys/fs/cgrou…

万字详解JavaScript手写一个Promise

目录 前言Promise核心原理实现 Promise的使用分析MyPromise的实现在Promise中加入异步操作 实现then方法的多次调用 实现then的链式调用 then方法链式调用识别Promise对象自返回 捕获错误及 then 链式调用其他状态代码补充 捕获执行器错误捕获then中的报错错误与异步状态的链式…

硬盘设备出现“设备硬件出现致命错误,导致请求失败”怎么办?

当我们尝试访问或打开计算机上的硬盘设备&#xff0c;有时候会出现“设备硬件出现致命错误&#xff0c;导致请求失败”的错误提示&#xff0c;这该怎么办呢&#xff1f;下面我们就来了解一下。 出现“设备硬件出现致命错误&#xff0c;导致请求失败”错误的原因有哪些&#xff…

机器学习之SVM支持向量机

目录 经典SVM 软间隔SVM 核SVM SVM分类器应用于人脸识别 SVM优点 SVM缺点 经典SVM 支持向量机&#xff08;Support Vector Machine&#xff0c;SVM&#xff09;是一种二分类模型&#xff0c;其基本思想是在特征空间中找到一个最优的超平面&#xff0c;使得正负样本点到…