iview/view-design+vue2实现表单校验

1.iview/view-design介绍

iview是一款基于Vue.js的开源UI组件库,提供了丰富的组件和样式,支持响应式布局和多语言环境。它使用了最新的前端技术,如ES6、Webpack和SASS,让开发者可以快速构建高质量的Web应用程序。

View-design是一款基于Vue.js的开源UI组件库,它的设计理念是简单、易用、美观。它提供了众多的组件,如按钮、表单、弹窗、表格等,并且还支持多种主题和组件扩展,开发者可以根据自己的需求进行定制。

 俩者之间主要的区别是vue的版本不同,这里以vue2为例实现代码

2.安装以及配置

2.1创建初始化项目

首先使用vue脚手架创建一个新的项目

确保电脑已通过npm安装vue脚手架

若没有安装可通过npm快算安装到电脑

npm p @vue/cli -g
vue create project

基础项目搭建完成后开始配置项目

 2.2 下载view-design

 进入项目目录执行命令

npm i view-design --save

 --save表示放到生产环境依赖中,默认可不写

 查看package.json可已看到多出来一个依赖

 2.3vue引入并配置全局生效

在main.js中引入这几个文件

import iView from 'view-design'
import 'view-design/dist/styles/iview.css'Vue.use(iView)

 最后在组件中引入即可使用

3Form表单配置和校验规则

3.1表单的基本结构

     <Form ref="form" :model="form" :rules="formRule" label-width="100"><FormItem label="用户名" prop="username"><Input v-model="form.username" placeholder="请输入用户名" clearable /></FormItem><FormItem label="密码" prop="password"><Input type="password" v-model="form.password" placeholder="请输入密码" :password="true" /></FormItem><FormItem label="生日" prop="birthday"><DatePicker v-model="form.birthday" aria-placeholder="生日"></DatePicker></FormItem><FormItem label="年龄" prop="age"><Input type="number" v-model="form.age" placeholder="请输入年龄" /></FormItem><FormItem label="性别" prop="sex"><Select v-model="form.sex"><Option :value="0">女</Option><Option :value="1">男</Option></Select></FormItem></Form><Row type="flex" justify="end"><Col :span="10"><Button @click="reset">重置</Button><Button @click="submit" type="primary">确定</Button></Col></Row>

 3.2表单校验规则

3.2.1 默认表单校验规则

  username: [{ required: true, message: "用户名不能为空", trigger: 'blur' }],password: [{ required: true, message: "密码不能为空", trigger: 'blur' }, {min: 6,max: 12,message: "长度在6-12之间"}],

 required: true 表示该字段必填 通常只能校验一般字符串,数字,不包括数组等

message: "用户名不能为空"  表示该字段校验不通过的提示信息

trigger: 'blur' 表示该字段的触发方式是失去焦点

 3.2.2 自定义表单校验规则

  birthday: [{required: false,validator: (rule, value, callback) => {let today = new Date()if (value > today) {callback(new Error("出生年份不能比今天晚"))} else {callback()}}}]

validator:(rule,value,callback)=>{}

如果校验通过则直接调用回调函数,不通过则返回一个错误对象

3.2.3 多表单校验规则

表单校验规则支持多个校验方式,本身是一个数组,可放多个校验规则

     password: [{ required: true, message: "密码不能为空", trigger: 'blur' },{min: 6,max: 12,message: "长度在6-12之间"}],


 3.2.4 表单校验方法

resetFields() 重置表单并清理错误显示

validate((validate)=>{}) 校验表单

  /*** 重置表单*/reset() {this.$refs.form.resetFields()},/*** 提交方法*/submit() {this.$refs.form.validate(validate => {if (validate) {// todo: 调用表单接口 } else {this.$Message.warning("请填写完整表单")}})}

4案例代码

<template><div id="app"><div><Card justify="center" style="width: 400px;align: center;"><Form ref="form" :model="form" :rules="formRule" label-width="100"><FormItem label="用户名" prop="username"><Input v-model="form.username" placeholder="请输入用户名" clearable /></FormItem><FormItem label="密码" prop="password"><Input type="password" v-model="form.password" placeholder="请输入密码" :password="true" /></FormItem><FormItem label="生日" prop="birthday"><DatePicker v-model="form.birthday" aria-placeholder="生日"></DatePicker></FormItem><FormItem label="年龄" prop="age"><Input type="number" v-model="form.age" placeholder="请输入年龄" /></FormItem><FormItem label="性别" prop="sex"><Select v-model="form.sex"><Option :value="0">女</Option><Option :value="1">男</Option></Select></FormItem></Form><Row type="flex" justify="end"><Col :span="10"><Button @click="reset">重置</Button><Button @click="submit" type="primary">确定</Button></Col></Row></Card></div></div>
</template><script>
import { Card, DatePicker, FormItem, Input, Option, Select } from 'view-design';export default {name: 'App',components: {Card,FormItem,Input,DatePicker,Select,Option},data() {return {form: {username: "",password: "",birthday: "",sex: 0,age: 0},formRule: {username: [{ required: true, message: "用户名不能为空", trigger: 'blur' }],password: [{ required: true, message: "密码不能为空", trigger: 'blur' },{min: 6,max: 12,message: "长度在6-12之间"}],birthday: [{required: false,validator: (rule, value, callback) => {let today = new Date()if (value > today) {callback(new Error("出生年份不能比今天晚"))} else {callback()}}}]},}},methods: {/*** 重置表单*/reset() {this.$refs.form.resetFields()},/*** 提交方法*/submit() {this.$refs.form.validate(validate => {if (validate) {// todo: 调用表单接口 } else {this.$Message.warning("请填写完整表单")}})}}
}
</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;align-items: center;
}
</style>

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

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

相关文章

bop数据合并到COCO

bop数据合并到COCO JSON转TXT重命名txt文件中类别信息的转换 JSON转TXT import json import os,globcategories [{"id": 12,"name": "OREO","supercategory": "icbin"},{"id": 16,"name": "Paper…

JAVA序列化和反序列化

JAVA序列化和反序列化 文章目录 JAVA序列化和反序列化序列化什么是序列化&#xff1f;为什么要进行序列化?如何将对线进行序列化具体实现过程 完整代码 序列化 什么是序列化&#xff1f; 就是将对象转化为字节的过程 为什么要进行序列化? 让数据更高效的传输让数据更好的…

ACL权限

ACL权限 目录&#xff1a; 1. 什么是ACL 2. 操作步骤 1. 什么是ACL ACL是Access Control List的缩写&#xff0c;即访问控制列表 每个项目成员在有一个自己的项目目录&#xff0c;对自己的目录有完全权限 项目组中的成员对项目目录也有完全权限 其他人对项目目录没有…

Spring Boot配置文件 Spring日志文件相关的知识

在上文中&#xff0c;小编带领大家创建了一个Spring Boot项目&#xff0c;并且成功的执行了第一个SPring Boot项目&#xff08;在网页上运行hello world&#xff09; 那么&#xff0c;本文的主要作用便是带领大家走进&#xff1a;Spring Boot配置文件 && Spring日志文件…

基于C#实现外排序

一、N 路归并排序 1.1、概序 我们知道算法中有一种叫做分治思想&#xff0c;一个大问题我们可以采取分而治之&#xff0c;各个突破&#xff0c;当子问题解决了&#xff0c;大问题也就 KO 了&#xff0c;还有一点我们知道内排序的归并排序是采用二路归并的&#xff0c;因为分治…

数据丢失抢救神器之TOP10 Android 数据恢复榜单

在快节奏的数字时代&#xff0c;我们的生活越来越与智能手机交织在一起&#xff0c;使它们成为重要数据和珍贵记忆的存储库。由于意外删除、软件故障或硬件故障而丢失数据可能是一种痛苦的经历。值得庆幸的是&#xff0c;技术领域提供了 Android 数据恢复软件形式的解决方案。这…

SSL握手失败的解决方案

一、SSL握手失败的原因&#xff1a; 1&#xff0c;证书过期&#xff1a;SSL证书有一个有效期限&#xff0c;如果证书过期&#xff0c;就会导致SSL握手失败。 2&#xff0c;证书不被信任&#xff1a;如果网站的SSL证书不被浏览器或操作系统信任&#xff0c;也会导致SSL握手失败…

市场被套牢,没有了解积累和分配,昂首资本一一介绍

很多投资者对市场中的积累和分配的概念不是很清楚&#xff0c;下面昂首资本将一一介绍。 积累意味着尽可能多地买入筹码&#xff0c;而不大幅抬高价格&#xff0c;直到在你买入时的价格水平上没有或几乎没有筹码。这种买入通常发生在市场熊市之后&#xff0c;此时有最佳买入价…

电路 buck-boost相关知识

BUCK-BOOST 文章目录 BUCK-BOOST前言一、DC-DC工作模式电容电感特性伏秒积平衡原理 二、BUCK电路三、BOOST电路四、BUCK-BOOST电路总结 前言 最近需要用到buck-boost相关的电路知识&#xff0c;于是便写下这篇文章复习一下。 一、DC-DC 在学习buck-boost电路之前我们先来看一…

2023人形机器人行业海外科技研究:从谷歌看机器人大模型进展

今天分享的是人形机器人系列深度研究报告&#xff1a;《2023人形机器人行业海外科技研究&#xff1a;从谷歌看机器人大模型进展》。 &#xff08;报告出品方&#xff1a;华鑫证券&#xff09; 报告共计&#xff1a;26页 大模型是人形机器人的必备要素 长期来看&#xff0c;人…

python教程:正常shell与反弹shell

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 正常shell需要先在攻击端开机情况下开启程序,然后攻击端运行程序,才能连接 反弹shell,攻击端是服务端,被攻击端是客户端 正常shell,攻击端是客户端,被攻击端是服务端 反弹shell,先启用服务端,再启用客户端 反弹shell的好处…

TDA笔记:夏克林老师,南洋理工大学

TDA比传统的统计方法有优势&#xff1a;benchmark中展现了这种优势 laplacian矩阵 多种单纯复形构造方式&#xff0c;可以构造出不同表征 二部图&#xff1a;Dowker complex Tor algebra可以用到多大数据 目前较新