封装校验规则(以及复选框和整体校验)-----Vue3+ts项目

news2024/11/27 20:55:39

登录校验页面

<script setup lang="ts">
import { ref } from 'vue'
import { mobileRules, passwordRules } from '@/utils/rules'
const mobile = ref('')
const password = ref('')
</script>
<!-- 表单 -->
    <van-form autocomplete="off">
      <van-field
        v-model="mobile"
        :rules="mobileRules"
        placeholder="请输入手机号"
        type="tel"
      ></van-field>
      <van-field
        v-model="password"
        :rules="passwordRules"
        placeholder="请输入密码"
        type="password"
      ></van-field>

封装校验页面utils/rules.ts
提取表单校验规则(为了其他页面复用)
加上 FieldRule ,可以有提示,提高效率

import type { FieldRule } from 'vant'
const mobileRules = [
  { required: true, message: '请输入手机号' },
  { pattern: /^1[3-9]\d{9}$/, message: '手机号不正确' }
]
const passwordRules: FieldRule[] = [
  { required: true, message: '请输入密码' },
  { pattern: /^\w{8,24}$/, message: '密码必须是8-24个字符' }
]
export { mobileRules, passwordRules }

在这里插入图片描述
效果图:
在这里插入图片描述
表单整体校验
加上native-type=“submit”,只有是submit时才能触发校验,这样点击登录就可以实现整体校验
" native-type" 是按钮的原始类型,通常用于表示某种原生的类型。

 <div class="cp-cell">
    <van-button native-type="submit" block round type="primary">登 录</van-button>
  </div>

复选框校验

//默认为false不勾选
const agree = ref(false)
const onSubmit = () => {
//如果agree.value不存在,也就是值为false,则提示勾选
  if (!agree.value) {
    return showToast('请勾选协议')
  }
  console.log(111)
}

submit提交表单且验证通过后触发

  <van-form autocomplete="off" @submit="onSubmit">
	<div class="cp-cell">
	   <van-checkbox v-model="agree">
	       <span>我已同意</span>
	       <a href="javascript:;">用户协议</a>
	       <span></span>
	       <a href="javascript:;">隐私条款</a>
	     </van-checkbox>
	  </div>
  </van-form>

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

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

相关文章

Day52力扣打卡

打卡记录 Collapsing Strings&#xff08;Trie树&#xff09; 链接 #include <iostream> #include <algorithm> using namespace std; const int N 2e6 10; int son[N][26], idx, cnt1[N], cnt2[N]; int main() {auto insert [&](string& str, int* c…

换种方式开发软件

前 言 作为程序员&#xff0c;经常苦于项目交付&#xff0c;疲于应对各种需求&#xff0c;一路狂奔&#xff0c;很难有时间停下来思考与抽象&#xff0c;聊起来都是“累”&#xff1b;作为产品经理&#xff0c;最痛苦的莫过于梦醒之后无路可走&#xff0c;心里的苦只有自己知道…

如何统计12.5米高程覆盖率?

无论是卫星影像还是高程DEM数据&#xff0c;覆盖率都是大家非常关心的一个重要参数。 我们曾基于WGS84坐标进行过简单的覆盖率计算&#xff0c;而且面积还包括了海洋区域。 因此&#xff0c;最后得出了一个非常不靠谱&#xff0c;看起来也很不漂亮的数据&#xff1a;12%。 为…

python3安装lifelines

目录 一、环境 二、安装lifelines 出现问题 三、测试导入 一、环境&#xff1a; jupyter notebook中新建ipynb文件 二、安装lifelines pip install --upgrade --no-deps githttps://github.com/CamDavidsonPilon/lifelines.git出现问题&#xff1a; 缺少模块autograd、f…

视频相似度对比 python opencv sift flann

提取SIFT特征的代码&#xff0c;返回关键点kp及特征描述符des def SIFT(frame):# 创建SIFT特征提取器sift cv2.xfeatures2d.SIFT_create()# 提取SIFT特征kp, des sift.detectAndCompute(frame, None)return kp, des 这行代码是使用SIFT&#xff08;Scale-Invariant Feature…

【LeetCode:1466. 重新规划路线 | DFS + 图 + 树】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

SE考研真题总结(一)

本帖开始分享考研真题中设计【软件工程】的部分&#xff0c;预计会出5期左右&#xff0c;敬请期待~ 一.单选题 1.程序编写不是软件质量保障过程~ 静态代码扫描是今年来多数被人提及的软件应用安全解决方案之一&#xff0c;指程序员在编写好代码后无需进行编译&#xff0c;直接…

校园外卖小程序源码系统 附带完整的搭建教程

随着大学生消费水平的提高&#xff0c;对于外卖服务的需求也在不断增加。很多学生都面临着课业繁重、时间紧张等问题&#xff0c;无法亲自到餐厅就餐。因此&#xff0c;开发一款适合校园外卖市场的应用软件&#xff0c;将为广大学生提供极大的便利。 以下是部分代码示例&#…

WSL2+tensorflow-gpu 2.3.0 C++ 源码编译(Linux)

一. gcc版本 wsl2已有gcc 版本为9.4.0,但tensorflow2.3.0需对应gcc7.3.1 tensorflow与cuda cudnn python bazel gcc版本对应关系 故需下载一个低版本的gcc,但同时还想保留较高版本的gcc,那么参考文章:深度学习环境搭建(二): Ubuntu不同版本gcc,CUDA,cuDNN共存,切换解…

网络安全(一)--网络环境构成,系统的安全

2. 网络攻防环境 目标 了解攻防环境构成了解入侵检测系统&#xff08;平台&#xff09;的部署位置 2.1. 环境构成 2.1.1. 环境框图 一个基本的网络攻防实验环境包括&#xff1a;靶机、攻击机、入侵检测分析系统、网络连接四部分组成。 一个基础的网络攻防实验环境需要如下…

SpringSecurity6 | 默认用户生成(下)

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Java从入门到精通 ✨特色专栏&#xf…

visionOS空间计算实战开发教程Day 9 打造“任意门”

我们在​​Day 8​​中演示了attachment的实现&#xff0c;本节的知识点是portal。portal相当于哆啦A梦里的任意门&#xff0c;它让我们可以打开另一个世界&#xff0c;这个世界独立于当前的世界&#xff0c;具有单独的光照系统并且由portal几何图形进行遮罩。 要创建portal&a…

利器|一款集成的BurpSuite漏洞探测插件

本着市面上各大漏洞探测插件的功能比较单一&#xff0c;因此与TsojanSecTeam成员决定在已有框架的基础上修改并增加常用的漏洞探测POC&#xff0c;它会以最少的数据包请求来准确检测各漏洞存在与否&#xff0c;你只需要这一个足矣。 1、加载插件 2、功能介绍 &#xff08;1&a…

pure::variants—产品平台化及变体管理工具

产品概述 pure::variants是德国pure-systems公司的产品&#xff0c;其目的是帮助企业实现对产品线的变体管理&#xff0c;提高企业项目资产的复用效率。pure::variants的核心理念是运用产品线管理方法对项目资产&#xff08;项目计划、需求、模型、功能模块、代码、测试用例&am…

【C语言】用户空间使用非缓存内存

在用户空间使用非缓存内存通常不是标准做法&#xff0c;因为非缓存内存的操作与硬件平台紧密相关&#xff0c;并且通常被保留给内核模块或设备驱动程序使用。 一、方法 用户空间程序一般不直接处理非缓存内存问题&#xff0c;因为它们依赖于操作系统来管理内存缓存一致性。尽…

外包干了3个月,技术倒退2年。。。

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

《C++ Primer》第12章 动态内存(一)

参考资料&#xff1a; 《C Primer》第5版《C Primer 习题集》第5版 我们的程序目前只用过静态内存和栈内存。静态内存用来保存局部 static 对象、类 static 成员、定义在任何函数之外的变量&#xff1b;栈内存用来保存定义在函数内的非 static 对象。分配在静态内存和栈内存的…

GPT 中文提示词技巧:参照 OpenAI 官方教程

前言 搜了半天什么 prompt engineering 的课&#xff0c;最后会发现 gpt 官方其实是有 prompt 教程的。因此本文主要是学习这篇教程。 概述 - OpenAI API 部分案例是参考&#xff1a;根据吴恩达老师教程总结出中文版prompt教程_哔哩哔哩_bilibili up主的内容。 一、尽可能清…

批量AI创作文案的工具,批量AI创作文章的软件

人工智能&#xff08;AI&#xff09;的应用不断拓展&#xff0c;其中批量AI创作逐渐成为许多文本创作者和企业编辑的热门选择。面对海量的文章需求&#xff0c;批量AI创作工具能够高效、快速地生成大量文本内容&#xff0c;从而减轻创作者的工作负担。本文将专心分享批量AI创作…

一对一互相聊天

服务端 package 一对一用户;import java.awt.BorderLayout; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Vector;…