vue中表单数据规则验证

1、使用:rules属性,如后h5代码

<template>

        

      <div class="dialog-box">

        <el-scrollbar>

          <el-form

            ref="service"

            :model="serviceForm"

            :rules="rules"

            label-width="100px"

          >

            <el-row style="padding: 0.1rem 0.2rem 0">

              <el-col :span="24">

                <el-form-item label="个人风采" prop="avatar">

                  <imageCut

                    v-model="serviceForm.avatar"

                    :fixedNumber="[86, 114]"

                    :disabled="disabled1"

                  >

                  </imageCut>

                </el-form-item>

                <el-form-item label="姓名" prop="name">

                  <el-input

                    v-model="serviceForm.name"

                    :disabled="disabled1"

                  />

                </el-form-item>

                <el-form-item label="职称" prop="jobTitle">

                  <el-input

                    v-model="serviceForm.jobTitle"

                    :disabled="disabled1"

                  />

                </el-form-item>

              </el-col>

              <el-col :span="24">

                <el-form-item label="身份证号" prop="idCard">

                  <el-input

                    v-model="serviceForm.idCard"

                    :disabled="disabled1"

                  />

                </el-form-item>

              </el-col>

              <el-col :span="24">

                <el-form-item label="所在地区" prop="area">

                  <!-- <el-select

                    v-model="serviceForm.province"

                    placeholder="请选择省份"

                    @change="cityData"

                    :disabled="disabled1"

                    style="width: 100%;"

                  >

                    <el-option

                      v-for="province in provinceOptions"

                      :key="province.value"

                      :label="province.value"

                      :value="province.value"

                    />

                  </el-select> -->

                  <el-select

                    v-model="serviceForm.area"

                    placeholder="请选择地区"

                    :disabled="disabled1"

                    style="width: 100%;"

                  >

                    <el-option

                      v-for="area in cityOptions"

                      :key="area.value"

                      :label="area.value"

                      :value="area.value"

                    />

                  </el-select>

                </el-form-item>              

              </el-col>

              <el-col :span="24">

                <el-form-item label="关联产业" prop="productCategoryId">

                  <el-select

                    v-model="serviceForm.productCategoryId"

                    placeholder="请选择一级产业"

                    @change="productTwoData"

                    :disabled="disabled1"

                    style="width: 40%; margin-right:5px"

                  >

                    <el-option

                      v-for="product in productFirstOptions"

                      :key="product.value"

                      :label="product.text"

                      :value="product.value"

                    />

                  </el-select>

                  <el-select

                    v-model="serviceForm.productCategoryTwoId"

                    placeholder="请选择二级产业"

                    :disabled="disabled1"

                    style="width: 40%;"

                  >

                    <el-option

                      v-for="product in productTwoOptions"

                      :key="product.value"

                      :label="product.text"

                      :value="product.value"

                    />

                  </el-select>

                </el-form-item>

              </el-col>

              <el-col :span="24">

                <el-form-item label="所属单位" prop="enterpriseId" >

                  <el-select

                    v-model="serviceForm.enterpriseId"

                    placeholder="请选择所属单位"

                    :disabled="disabled1||disabled2"

                    ref="enterpriseSel"

                    style="width: 40%;margin-right:5px;">

                    <el-option

                      v-for="option in EnterpriseList"

                      :label="option.enterpriseName"

                      :value="option.id"

                      :key="option.id"

                    />

                  </el-select>

                 

                  <el-input

                    v-model="serviceForm.enterpriseName"

                    :disabled="disabled1||disabled3"

                    style="width:40%;margin-right:10px;"

                  />

                  <el-checkbox

                    :disabled="disabled1"

                    v-model="serviceForm.comBox"

                    label="是否输入"

                    @change="changeBox"

                  />

                </el-form-item>

              </el-col>

              <el-col :span="24">

                <el-form-item label="研究方向" prop="researchDirection">

                  <el-input

                        type="textarea"

                        v-model="serviceForm.researchDirection"

                        placeholder="请输入研究方向"

                        :disabled="disabled1"

                        style="width: 100%"

                        :autosize="{ minRows: 4, maxRows: 6 }"/>

                </el-form-item>

              </el-col>

              <el-col :span="24" style="margin-bottom: 18px;">

                <el-form-item label="数据来源" prop="dataSources">

                  <el-input

                    v-model="serviceForm.dataSources"

                    :disabled="disabled1"

                  />

                </el-form-item>

              </el-col>

            </el-row>

          </el-form>

        </el-scrollbar>

      </div>

</template>

2、js代码

<script setup>

// 手机号验证规则

const validatePhon = (rule, value, callback) => {

  var reg1 = /^1[3-9]\d{9}$/;

  var reg =

    /^((0\d{2,3}(-)?\d{7,8})|(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8})$/;

  if (value) {

    if (!reg.test(value) && !reg1.test(value)) {

      callback(new Error("请输入正确的联系方式"));

    } else {

      callback();

    }

  }

  callback();

};

        

// 身份证号验证规则

const validateIdCard = (rule,value, callback) => {

  var reg =/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;

  if (value) {

    if (!reg.test(value)) {

      callback(new Error("请输入正确的身份证号!"));

    } else {

      callback();

    }

  }

  callback();

};

/** 表单验证 */

const rules = {

  name: [{ required: true, message: "请输入姓名", trigger: "blur" }],

  jobTitle: [{ required: true, message: "请输入职称", trigger: "blur" }],

  //enterpriseId: [{ required: true, message: "请选择所属单位", trigger: "blur" }],

  //enterpriseName: [{ required: true, message: "请选择所属单位", trigger: "blur" }],

  area:[{required:true,message:"请选择地区",trigger:"blur"}],

  researchDirection: [{ required: true, message: "请输入研究方向", trigger: "blur" }],

  dataSources: [{ required: true, message: "请输入数据来源", trigger: "blur" }],

  idCard:[{validator:validateIdCard,trigger:"blur"}],

 contactPhone: [

    { required: true, message: "请输入联系电话", trigger: "blur" },

    { validator: validatePhon, trigger: "blur" },

  ]

};

</script>

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

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

相关文章

【微服务】SpringBoot整合Resilience4j使用详解

目录 一、前言 二、熔断器出现背景 2.1 几个核心概念 2.1.1 熔断 2.1.2 限流 2.1.3 降级 2.2 为什么会出现熔断器 2.3 断路器介绍 2.3.1 断路器原理 三、Resilience4j介绍 3.1 Resilience4j概述 3.1.1 Resilience4j是什么 3.1.2 Resilience4j功能特性 3.2 Resilie…

Windows系统安装OpenSSH结合VS Code远程ssh连接Ubuntu【内网穿透】

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-mEkKUraSFHLKkzIj {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

nacos配置更新错误并不会导致已经启动的服务宕机

nacos配置更新错误并不会导致已经启动的服务宕机 但是可能会导致异常

QML GridView 网格视图

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 和 ListView 一样,GridView 也是基于 Flickable 的视图组件,它们的用法非常相似。不同的是,ListView 中的元素被存储在线性链表中,并以单列(或单行)的形式进行展示的,因此适用于垂直(或水平)列表的…

生成哈夫曼树(100%用例)C卷(JavaPythonC++Node.jsC语言)

给定长度为n的无序的数字数组,每个数字代表二叉树的叶子节点的权值,数字数组的值均大于等于1。请完成一个函数,根据输入的数字数组,生成哈夫曼树,并将哈夫曼树按照中序遍历输出。 为了保证输出的二又树中序遍历结果统一,增加以下限制:二叉树节点中,左节点权值小于等于右…

使用Visual Studio创建跨平台CMake项目

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 创建跨平台项目的意义是什么&#xff1f; 跨平台CMake项目的意义在于提供一种统一的构建系统&#xff0c;使得开发者可以编写一份…

第十三届蓝桥杯省赛C++ C组《全题目+题解》

填空题一般都是找规律题目&#xff0c;耐下心来慢慢分析即可。 第一题《排列字母》 【问题描述】 小蓝要把一个字符串中的字母按其在字母表中的顺序排列。 例如&#xff0c;LANQIAO 排列后为AAILNOQ。 又如&#xff0c;GOODGOODSTUDYDAYDAYUP 排列后为AADDDDDGGOOOOPSTUUYYY。…

CommandInvokationFailure: Failed to update Android SDK package list. 报错的解决方法

将Unity升级到2021.3.36f1&#xff0c; 再次打开项目&#xff0c;结果出现“CommandInvokationFailure: Failed to update Android SDK package list. ”这样的警告&#xff0c;查看SDK版本最高只有到30&#xff0c;这应该就是Unity自动升级SDK的时候出现了错误&#xff0c;导致…

简单易集成的实名认证实名认证接口-C#语言实名认证接口免费教程

现如今&#xff0c;随着网络安全法等相关法规的实施&#xff0c;线上互联网平台与服务提供商都要求用户进行实名认证&#xff0c;以提高账户安全、防止欺诈行为和保障交易的合法性。翔云实名认证接口&#xff0c;通过核验身份证二要素、三要素、三要素现场人像的方式助力线上平…

十五、软考-系统架构设计师笔记-面向服务架构设计理论与实践

1、SOA相关概念 面向服务的架构(SOA)的定义 SOA 是一个组件模型&#xff0c;它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的&#xff0c;它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构…

技术驱动校园招聘:Java+SpringBoot+Vue的实践之旅

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

【Vue3】学习命名路由和嵌套路由

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

湘菜馆如何选择合适的油烟净化器?打造清新餐饮厨房

我最近分析了餐饮市场的油烟净化器等产品报告&#xff0c;解决了餐饮业厨房油腻的难题&#xff0c;更加方便了在餐饮业和商业场所有需求的小伙伴们。 湘菜馆是传统的中国美食代表之一&#xff0c;然而烹饪湘菜的同时&#xff0c;油烟也是无法避免的问题。为了打造一个清新的餐…

面视题之——索引失效

面视题之——索引失效 失效场景一 当我们执行sql语句的查询条件中包含函数&#xff0c;那么数据库就无法使用索引来优化查询&#xff0c;因为它需要对每一行数据都调用函数来计算结果&#xff0c;这会导致查询速度变慢。 例如&#xff1a; SELECT * FROM table_name WHERE nam…

C++程序设计-第九/十一/十二章 模板/输入/输出流/标准模板库【期末复习|考研复习】

前言 总结整理不易&#xff0c;希望大家点赞收藏。 给大家整理了一下C程序设计中的重点概念&#xff0c;以供大家期末复习和考研复习的时候使用。 C程序设计系列文章传送门&#xff1a; 第一章 面向对象基础 第四/五章 函数和类和对象 第六/七/八章 运算符重载/包含与继承/虚函…

wsl安装及Anaconda配置

文章目录 wslAnaconda下载安装包安装Anaconda配置环境写在最后 wsl 照着一步一步配置就好 wsl_update链接 Anaconda 下载安装包 找到自己所需的 在终端输入&#xff1a; wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh将Anaconda3-2024.02-…

软件测试面试都问了什么?中级软件测试岗面试(4面)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 一面&#xff08;…

Pulsar消息路由深入剖析

一、概述 大数据背景下&#xff0c;分区应该是所有组件必备的基本条件&#xff0c;否则面对海量数据时无论是计算还是存储都容易遇到瓶颈。跟其他消息系统一样&#xff0c;Pulsar通过Topic将消息数据进行业务层面划分管理&#xff0c;同时也支持Topic分区&#xff0c;通过将多…

H12-811_190

190.(多选题)关于以太网子接口描述正确有哪些? A.子接口不能配置IP地址 B.一个子接口可以绑定多个VLAN C.子接口的IP地址不能属于同一网段 D.子接口ID要与VLAN ID相同 答案&#xff1a;C 注释&#xff1a; 大家如果有不同的理解欢迎留言讨论。 题目显示是多选题…

2024年信息技术与计算机工程国际学术会议(ICITCEI 2024)

2024年信息技术与计算机工程国际学术会议&#xff08;ICITCEI 2024&#xff09; 2024 International Conference on Information Technology and Computer Engineering ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 大会主题&#xff1a; 信息系统和技术…