当前位置: 首页 > news >正文

Element-plus表单总结

表单包含输入框,单选框,下拉选择,多选框等用户输入的组件。输入表单,您可以收集、验证和提交数据。

经典表单

最基础的表单包括各种输入表单项,比如input、select、radio、checkbox等。 在每一个form组件中,需要一个form-item 字段作为输入项的容器,用于获取值与验证值。

<template><el-form :model="form" label-width="auto" style="max-width: 600px"><el-form-item label="Activity name"><el-input v-model="form.name" /></el-form-item><el-form-item label="Activity zone"><el-select v-model="form.region" placeholder="please select your zone"><el-option label="Zone one" value="shanghai" /><el-option label="Zone two" value="beijing" /></el-select></el-form-item><el-form-item label="Activity time"><el-col :span="11"><el-date-pickerv-model="form.date1"type="date"placeholder="Pick a date"style="width: 100%"/></el-col><el-col :span="2" class="text-center"><span class="text-gray-500">-</span></el-col><el-col :span="11"><el-time-pickerv-model="form.date2"placeholder="Pick a time"style="width: 100%"/></el-col></el-form-item><el-form-item label="Instant delivery"><el-switch v-model="form.delivery" /></el-form-item><el-form-item label="Activity type"><el-checkbox-group v-model="form.type"><el-checkbox value="Online activities" name="type">Online activities</el-checkbox><el-checkbox value="Promotion activities" name="type">Promotion activities</el-checkbox><el-checkbox value="Offline activities" name="type">Offline activities</el-checkbox><el-checkbox value="Simple brand exposure" name="type">Simple brand exposure</el-checkbox></el-checkbox-group></el-form-item><el-form-item label="Resources"><el-radio-group v-model="form.resource"><el-radio value="Sponsor">Sponsor</el-radio><el-radio value="Venue">Venue</el-radio></el-radio-group></el-form-item><el-form-item label="Activity form"><el-input v-model="form.desc" type="textarea" /></el-form-item><el-form-item><el-button type="primary" @click="onSubmit">Create</el-button><el-button>Cancel</el-button></el-form-item></el-form>
</template><script lang="ts" setup>
import { reactive } from 'vue'// do not use same name with ref
const form = reactive({name: '',region: '',date1: '',date2: '',delivery: false,type: [],resource: '',desc: '',
})const onSubmit = () => {console.log('submit!')
}
</script>

提示

W3C标准定义:

当一个表单中只有一个单行文本输出字段时,浏览器应当将在此字段中按下Enter(回车键)的行为视为提交表单的请求。如果希望阻止这一默认行为,可以在<el-form>标签上添加@submit.prevent。

行内表单 

当垂直方向空间受限且表单较简单时,可以在一行内放置表单。通过设置 inline 属性为 true 可以让表单域变为行内的表单域。

对齐方式

根据设计情况,来选择最佳的标签对齐方式。您可以分别设置el-form-item 的 label-position. 如果值为空,则会使用el-form 的 label-position。通过设置 label-position 属性可以改变表单域标签的位置,可选值为 top、left,当设为 top 时标签会置于表单域的顶部。

可以绑定在 <el-form>标签上。

也可以单独绑定在<el-form-item>标签上。 

const labelPosition = ref('top')
const itemLabelPosition = ref('')

 表单校验

Form组件允许您验证用户的输入是否符合规范,来帮助你找到和纠正错误。

Form 组件提供了表单验证的功能,只需为 rules 属性传入约定的验证规则,并将 form-Item 的 prop 属性设置为需要验证的特殊键值即可。 

ref用来定义这个<el-form>表单,:rules用来绑定所需要的规则,具体可见js代码。

prop属性用于rules中对应数据规则的匹配,注意:prop中的值需要和v-model中的值对应,例如prop=”name",v-model为="ruleForm.name",否则会出现输入值提示没有输入值的现象。

这是表单规则对应的js代码。可根据自身需求进行修改。

const ruleFormRef = ref()const rules = reactive({name: [{ required: true, message: 'Please input Activity name', trigger: 'blur' },{ min: 3, max: 5, message: 'Length should be 3 to 5', trigger: 'blur' },],region: [{required: true,message: 'Please select Activity zone',trigger: 'change',},],count: [{required: true,message: 'Please select Activity count',trigger: 'change',},],
})const submitForm = async (formEl) => {if (!formEl) returnawait formEl.validate((valid, fields) => {if (valid) {console.log('submit!')} else {console.log('error submit!', fields)}})
}

自定义校验规则

这个例子中展示了如何使用自定义规则来完成密码的二次验证。本例还使用 status-icon 属性为输入框添加了表示校验结果的反馈图标。

 自定义校验规则同样需要写ref,:rules绑定,以及prop属性。

在js代码中,rules里用了validator,后面的参数为自定义校验的方法。 注意自定义的验证回调函数必须被调用即要写callback()。

const ruleFormRef = ref()const rules = reactive({pass: [{ validator: validatePass, trigger: 'blur' }],checkPass: [{ validator: validatePass2, trigger: 'blur' }],age: [{ validator: checkAge, trigger: 'blur' }],
})const checkAge = (rule, value, callback) => {if (!value) {return callback(new Error('Please input the age'))}setTimeout(() => {if (!Number.isInteger(value)) {callback(new Error('Please input digits'))} else {if (value < 18) {callback(new Error('Age must be greater than 18'))} else {callback()}}}, 1000)
}const validatePass = (rule, value, callback) => {if (value === '') {callback(new Error('Please input the password'))} else {if (ruleForm.checkPass !== '') {if (!ruleFormRef.value) returnruleFormRef.value.validateField('checkPass')}callback()}
}
const validatePass2 = (rule, value, callback) => {if (value === '') {callback(new Error('Please input the password again'))} else if (value !== ruleForm.pass) {callback(new Error("Two inputs don't match!"))} else {callback()}
}

 

添加/删除表单项

除了一次通过表单组件上的所有验证规则外,您也可以动态地通过验证规则或删除单个表单字段的规则。

 这里主要是通过New domain来创建新的表单,并为其添加验证规则,跟之前的表单验证一样,只不过这侧我们把 :rules写在了<el-form-item>里。

这里使用了循环,为每个通过按钮生成的表单添加了对应的label 和 prop对应规则。 

这个为添加新的表单和移除新的表单的js方法。 

const addDomain = () => {dynamicValidateForm.domains.push({key: Date.now(),value: '',})
}const removeDomain = (item) => {const index = dynamicValidateForm.domains.indexOf(item)if (index !== -1) {dynamicValidateForm.domains.splice(index, 1)}
}

数字类型验证

数字类型的验证需要在 v-model处加上 .number 的修饰符,这是Vue自身提供的用于将绑定值转化为number类型的修饰符。

 

 

尺寸控制

表单中所有子组件都继承了该表单的 size 属性。 同样,form-item 也有一个 size 属性。 如果希望某个表单项或某个表单组件的尺寸不同于Form上的 size 属性,直接为这个表单项或表单组件设置自己的size属性即可。

 

const size = ref('default')

 

无障碍

当在 el-form-item 内只有一个输入框(或相关的控制部件,如选择或复选框),表单项的标签将自动附加在那个输入框上。如果 el-form-item 内有多个input,则表单会被设置成 WAI-ARIA 组的role。 在这种情况下,需要手动给每个 input 指定访问标签。

 

const formAccessibility = reactive({fullName: '',firstName: '',lastName: '',
})

相关文章:

Element-plus表单总结

表单包含输入框&#xff0c;单选框&#xff0c;下拉选择&#xff0c;多选框等用户输入的组件。输入表单&#xff0c;您可以收集、验证和提交数据。 经典表单 最基础的表单包括各种输入表单项&#xff0c;比如input、select、radio、checkbox等。 在每一个form组件中&#xff0…...

unity学习13:gameobject的组件component以及tag, layer 归类

目录 1 gameobject component 是unity的基础 1.1 类比 1.2 为什么要这么设计&#xff1f; 2 从空物体开始 2.1 创建2个物体 2.2 给 empty gameobject添加组件 3 各种组件和新建组件 3.1 点击 add component可以添加各种组件 3.2 新建组件 3.3 组件的操作 3.4 特别的…...

51单片机——中断(重点)

学习51单片机的重点及难点主要有中断、定时器、串口等内容&#xff0c;这部分内容一定要认真掌握&#xff0c;这部分没有学好就不能说学会了51单片机 1、中断系统 1.1 概念 中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的&#xff0c;中断功能的存在&#…...

企业级Java 实体对象类定义规范

1. 查询参数类 (Query) 命名规则: xxxQuery.java用途: 用于封装查询操作的请求参数&#xff0c;通常包含分页、过滤、排序等字段。与数据库查询或 API 请求紧密相关。示例: ProductQuery.java、UserQuery.java使用场景: 查询条件的封装&#xff0c;发送查询请求时使用。 2. 返…...

【网络云SRE运维开发】2025第2周-每日【2025/01/07】小测-【第7章 GVRP链路捆绑】理论和实操

文章目录 一、理论题1.1 GVRP协议在华为设备中的主要作用是什么&#xff1f;1.2 在华为交换机上&#xff0c;配置GVRP时&#xff0c;端口的注册模式有哪些&#xff1f;并简要说明其特点。1.3 简述华为设备中GVRP协议的工作过程。1.4 在华为交换机上配置GVRP时&#xff0c;如果两…...

蓝桥杯算法|练习记录

位运算 按位与运算符&#xff08;&&#xff09; 运算规则&#xff1a;两位同时为1&#xff0c;结果才为1&#xff0c;否则结果为0。例如&#xff0c; -3&#xff08;在计算机中表示为1101&#xff09;&5&#xff08;0101&#xff09; 0101&#xff08;即十进制的1&…...

C语言 扫雷程序设计

目录 1.main函数 2.菜单打印menu函数 3.游戏game函数 4.宏定义 5.界面初始化 6.打印界面 7.设置雷 8.统计排查坐标周围雷的个数 9.排查雷 10.总代码 test.c代码 game.h代码 game.c代码 结语&#xff1a; 一个简单的扫雷游戏&#xff0c;通过宏定义可以修改行列的…...

CSS语言的文件操作

CSS语言文件操作浅析 CSS&#xff08;层叠样式表&#xff09;是一种用于描述HTML文档表现的样式表语言。它负责设置网页的视觉效果&#xff0c;包括文字、颜色、布局等。然而&#xff0c;CSS不仅仅是用于修饰页面&#xff0c;它在现代开发中的作用正变得愈发重要。在本文中&am…...

前端-计算机网络篇

一.网络分类 1.按照网络的作用范围进行分类 &#xff08;1&#xff09;广域网WAN(Wide Area Network) 广域网的作用范围通常为几十到几千公里,因而有时也称为远程网&#xff08;long haul network&#xff09;。广域网是互联网的核心部分&#xff0c;其任务是长距离运送主机…...

行为分析:LSTM、3D CNN、SlowFast Networks。这三者的优缺点

在行为分析任务中&#xff0c;**LSTM**、**3D CNN** 和 **SlowFast Networks** 是三种常用的深度学习模型。它们各有优缺点&#xff0c;适用于不同的场景和需求。以下是它们的详细对比&#xff1a; --- ### **1. LSTM&#xff08;Long Short-Term Memory&#xff09;** LSTM …...

【HarmonyOS NEXT】鸿蒙应用使用后台任务之长时任务,解决屏幕录制音乐播放等操作不被挂起

【HarmonyOS NEXT】鸿蒙应用使用后台任务之长时任务&#xff0c;解决屏幕录制音乐播放等操作不被挂起 一、前言 1.后台是什么&#xff1f; 了解后台任务和长时任务前&#xff0c;我们需要先明白鸿蒙的后台特性&#xff1a;所谓的后台&#xff0c;指的是设备返回主界面、锁屏、…...

STM32-WWDG/IWDG看门狗

WWDG/IWDG一旦开启不能关闭&#xff0c;可通过选项字节在上电时启动硬件看门狗&#xff0c;看门狗计数只能写入不能读取。看门狗启用时&#xff0c;T6bit必须置1&#xff0c;防止立即重置。 一、原理 独立看门狗-超时复位 窗口看门狗-喂狗&#xff08;重置计数器&#xff0c;…...

基于视觉惯性 SLAM(VSLAM)、相机和 IMU 数据的融合执行 6 自由度位姿跟踪

案例来源&#xff1a;https://spectacularai.github.io/docs/sdk/wrappers/oak.html 适配相机&#xff1a;带IMU的 OAK-D 系列相机 基于视觉惯性 SLAM&#xff08;VSLAM&#xff09;、相机和 IMU 数据的融合执行 6 自由度位姿跟踪 ~~~~~~~&#xff08;分界线&#xff09;~~~~~…...

Matlab仿真径向受压圆盘光弹图像

Matlab仿真径向受压圆盘光弹图像-十步相移法 主要参数 % 定义圆盘参数 R 15; % 圆盘半径&#xff0c;单位&#xff1a;mm h 5; % 圆盘厚度&#xff0c;单位&#xff1a;mm P 300; % 径向受压载荷大小&#xff0c;单位&#xff…...

网络安全抓包

#知识点&#xff1a; 1、抓包技术应用意义 //有些应用或者目标是看不到的&#xff0c;这时候就要进行抓包 2、抓包技术应用对象 //app,小程序 3、抓包技术应用协议 //http&#xff0c;socket 4、抓包技术应用支持 5、封包技术应用意义 总结点&#xff1a;学会不同对象采用…...

WebSocket 测试调试:工具与实践

在前五篇文章中,我们深入探讨了 WebSocket 的基础原理、服务端开发、客户端实现、安全实践和性能优化。今天,让我们把重点放在测试和调试上,看看如何确保 WebSocket 应用的质量和可靠性。我曾在一个实时通讯项目中,通过完善的测试和调试策略,将线上问题的发现时间从小时级缩短到…...

ArmSoM RK3588/RK3576核心板,开发板网络设置

ArmSoM系列产品都搭配了以太网口或WIFI模块&#xff0c;PCIE转以太网模块、 USB转以太网模块等&#xff0c;这样我们的网络需求就不止是上网这么简单了&#xff0c;可以衍生出多种不同的玩法。 1. 网络连接​ 连接互联网或者组成局域网都需要满足一个前提–设备需要获取到ip&a…...

【学Rust开发CAD】1 环境搭建

文章目录 一、搭建C/C编译环境二、安装Rust三、配置 PATH 环境变量四、验证安装结果五、安装编辑工具 一、搭建C/C编译环境 Rust 的编译工具依赖 C 语言的编译工具&#xff0c;这意味着你的电脑上至少已经存在一个 C 语言的编译环境。如果你使用的是 Linux 系统&#xff0c;往…...

数据结构与算法之二叉树: LeetCode 108. 将有序数组转换为二叉搜索树 (Ts版)

将有序数组转换为二叉搜索树 https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/description/ 描述 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列请你将其转换为一棵 平衡 二叉搜索树 示例 1 输入&#xff1a;nums [-10,-3,0,5,9…...

Java 多线程之@Async

SpringBoot 中使用 Async 使用 Async 注解步骤&#xff1a; 添加 EnableAsync 注解。在主类上或者 某个类上&#xff0c;否则&#xff0c;异步方法不会生效 添加 Async注解。在异步方法上添加此注解。异步方法不能被 static 修饰需要自定义线程池&#xff0c;则可以配置线程池…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...