7.1elementplus的表单

 Element Plus 表单由以下几个关键部分构成:

  1. <el-form>: 表单容器。它是整个表单的根组件,负责管理表单数据、校验规则、布局方式等。
  2. <el-form-item>: 表单项容器。用于包裹一个具体的表单控件(如输入框、选择器等)及其标签(label)、校验状态提示。它是实现布局和校验的基本单元。
  3. 表单控件 (Form Controls): 实际的输入组件,如 <el-input><el-select><el-date-picker><el-checkbox><el-switch> 等。这些控件通过 v-model 或 :model 与 el-form 的数据模型绑定。
  4. 数据模型 (Model): 一个 JavaScript 对象,通常在 setup 或 data 中定义,用于存储表单各字段的值。el-form 的 model 属性指向这个对象。
  5. 校验规则 (Rules): 一个对象,定义了每个表单字段需要满足的校验条件(如必填、格式、长度等)。el-form 的 rules 属性指向这个对象。

<el-form> 详解

  • 作用: 表单的顶层容器,协调 el-form-item 和表单控件。
  • 核心属性:
    • model必需。绑定表单的数据对象。例如 :model="form", 其中 form 是 { name: '', email: '' } 这样的对象。
    • rules可选。定义表单校验规则的对象。例如 :rules="formRules"
    • label-width: 设置所有 el-form-item 标签(label)的宽度。可以是字符串如 "100px" 或数字 100。如果某个 el-form-item 需要不同的宽度,可以在该 el-form-item 上单独设置。
    • label-position: 设置标签的位置。可选值:
      • right (默认): 标签在控件右侧(当 label-width 有效时,通常表现为左对齐标签,右对齐控件)。
      • left: 标签在控件左侧。
      • top: 标签在控件上方。常用于移动端或需要节省水平空间的场景。
    • label-suffix: 标签后缀,如冒号 ":" (默认) 或其他字符。
    • hide-required-asterisk: 是否隐藏必填字段的红色星号标记。默认 false (显示星号)。
    • require-asterisk-position: 星号位置。left (默认) 或 right
    • inline: 是否让表单项 (el-form-item) 水平排列。设置为 true 时,表单项会显示在同一行,适合构建查询表单。此时 label-position 通常为 right 或 left
    • disabled: 是否禁用该表单内所有控件。如果控件自身也有 disabled,则以控件自身的设置为准。
    • status-icon: 是否在输入框中显示校验状态图标(如成功对勾、错误叉号)。默认 false
    • validate-on-rule-change: 当 rules 属性改变后,是否立即触发一次校验。默认 true
    • scroll-to-error: 提交表单时,如果校验失败,是否自动滚动到第一个错误的表单项。默认 false
    • size: 为表单内的控件设置统一的尺寸 (largedefaultsmall)。可以被控件自身的 size 覆盖。
  • 核心方法 (通过 ref 调用):
    • validate(callback: Function): 对整个表单进行校验。callback 函数接收两个参数:valid (布尔值,表示校验是否通过) 和 invalidFields (包含未通过校验字段的对象)。这是提交表单前必须调用的方法
    • validateField(props: string | string[], callback: Function): 对表单的指定字段进行校验。props 可以是字段名字符串或字符串数组。
    • resetFields(): 对整个表单进行重置,将其恢复到初始状态(清空输入、移除校验状态)。注意:这会将 model 的值重置为 el-form 组件初始化时 model 对象的值。如果初始值是 '',则重置为空;如果初始值是 'default',则重置为 'default'
    • clearValidate(props?: string | string[]): 移除表单项的校验结果。可以指定一个或多个字段名,或不传参清除所有。
    • scrollToField(prop: string): 滚动到指定 prop 名称的表单项。

<el-form-item> 详解

  • 作用: 包裹一个表单控件,提供布局、标签、校验状态显示(错误信息、加载状态图标)。
  • 核心属性:
    • prop必需(当 el-form 有 rules 时)。指定该表单项对应 model 中的字段名。例如 prop="name" 对应 model.name这是 el-form 能够找到并校验特定字段的关键
    • label: 该表单项的标签文本。
    • label-width: 覆盖 el-form 的 label-width,设置此单项的标签宽度。
    • required: 是否必填。如果 rules 中有 required: true,通常会自动显示红色星号,此属性可显式控制。
    • rules: 为该单项设置独立的校验规则。如果 el-form 的 rules 中也定义了此 prop 的规则,两者会合并
    • error: 自定义显示的错误信息文本。设置后,会强制显示为错误状态,优先级高于校验规则产生的错误信息。常用于服务端返回的错误。
    • show-message: 是否显示校验错误信息。默认 true
    • inline-message: 是否以行内形式显示校验信息(错误信息显示在控件右侧,而不是下方)。默认 false
    • size: 设置该单项内控件的尺寸。
  • 插槽 (Slots):
    • 默认插槽: 放置表单控件。
    • label: 自定义标签内容(可以包含 HTML 或组件)。
    • error: 自定义错误信息的显示内容。

表单校验 (Validation) 详解

校验是 el-form 最强大的功能之一。它支持声明式规则和灵活的异步校验。

  1. 校验规则 (rules) 结构:

    • rules 是一个对象,其键 (key) 对应 model 中的字段名 (prop)。
    • 值是一个数组,包含一个或多个校验规则对象。
    • 规则对象常用属性:
      • requiredtrue 表示必填。
      • message: 校验失败时显示的提示消息。
      • trigger: 触发校验的事件。常用值:
        • blur: 失去焦点时触发。
        • change: 值改变时触发(对于 input 是输入时,对于 select 是选择时)。
        • 可以是数组 ['blur', 'change']
      • type: 数据类型。如 stringnumberbooleanarrayobjectdateurlemail 等。指定类型后,校验器会进行相应的类型检查。
      • min / max: 字符串长度或数组长度的最小/最大值。
      • len: 长度必须等于指定值。
      • pattern: 正则表达式,值必须匹配该模式。
      • validator自定义校验函数。接收三个参数:rule (当前规则对象), value (当前字段的值), callback (校验完成后的回调函数)。必须调用 callback(),传入 new Error('错误信息') 表示失败,或 callback() (无参数) 表示成功。
      • asyncValidator异步自定义校验函数。与 validator 类似,但它返回一个 PromisePromise resolve 表示成功,reject 一个 Error 实例表示失败。
  2. 内置校验类型:

    • Element Plus 内置了对 stringnumberbooleanarrayobjectdateurlemailpattern 等类型的校验。
    • 例如,type: 'email' 会自动使用邮箱正则进行校验。
  3. 自定义校验函数示例:

    const formRules = reactive({password: [{ required: true, message: '请输入密码', trigger: 'blur' },{ min: 6, message: '密码长度至少6位', trigger: 'blur' }],confirmPassword: [{ required: true, message: '请确认密码', trigger: 'blur' },{validator: (rule, value, callback) => {if (value === '') {callback(new Error('请再次输入密码'));} else if (value !== form.password) { // 假设 form 是 model 对象callback(new Error('两次输入的密码不一致'));} else {callback(); // 校验通过}},trigger: 'blur'}],asyncCheck: [{asyncValidator: (rule, value, callback) => {return new Promise((resolve, reject) => {// 模拟异步请求setTimeout(() => {if (value === 'async') {resolve(); // 成功} else {reject(new Error('必须输入 "async"')); // 失败}}, 1000);});},trigger: 'blur'}]
    });

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

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

相关文章

TF-IDF:文本分析的“火眼金睛”

TF-IDF&#xff1a;文本分析的“火眼金睛” 在信息爆炸的时代&#xff0c;我们每天都会接触到海量的文本数据。如何从这些数据中快速找出最重要的信息&#xff1f;TF-IDF&#xff08;Term Frequency-Inverse Document Frequency&#xff09;算法就是一种非常实用的工具&#xf…

传统星型拓扑结构的5G,WiFi无线通信网络与替代拓扑结构自组网

一、个人理解 区别自组网&#xff0c;5G和WiFi三者要抓住两个关键点&#xff1a;移动、组网。 5G通信是移动通信的最新一代&#xff1b;1940年代美军的手持对讲机虽然可以移动&#xff0c;但是算不上网络&#xff0c;后面的第一代移动通信蜂窝网络才能算上网络。 WiFi通信虽…

REST API 是无状态的吗,如何保障 API 的安全调用?

当然&#xff0c;这是一个非常核心的API设计和安全领域的问题。我们来详细拆解一下。1. REST API 是无状态的吗&#xff1f;​是的&#xff0c;REST API 的核心原则之一就是“无状态”&#xff08;Statelessness&#xff09;。​​这意味着&#xff1a;​服务器不保存客户端的会…

Machine Learning HW3 report:图像分类(Hongyi Lee)

任务&#xff1a;使用CNN把食物图片分为11类&#xff08;不能使用预训练的模型&#xff09;。此任务很耗时&#xff0c;一次训练至少1h&#xff0c;所以要利用好Kaggle notebook中Save Version功能&#xff0c;并行训练节省时间。 基准 Simple : 0.50099Medium : 0.73207 Train…

Element整体操作样式

Element: 给表格整体设置斑马纹 在main.js中 ElementUI.Table.props.stripe {type: Boolean,default: true }在element-ui.scss中 // // 为所有 el-table 设置默认斑马纹 // .el-table { // &.el-table--enable-row-hover .el-table__body tr:hover > td { // ba…

谷歌官宣组建“网络攻击部门”,美国网络安全战略转向“以攻代防”

谷歌宣布将组建网络攻击部门8月27日&#xff0c;谷歌宣布将组建网络攻击部门&#xff08;disruption unit&#xff09;。谷歌威胁情报集团副总裁Sandra Joyce在本周二的网络安全政策会议上表示&#xff0c;谷歌正在寻找“合法且符合道德规范的干扰方案”&#xff0c;通过情报主…

Rust Tokio异步任务实战教程(高级功能)

1. 强大的异步 I/O 多路复用Tokio 的核心竞争力之一是对操作系统原生异步 I/O 机制的封装&#xff08;如 Linux 的 epoll、Windows 的 IOCP、macOS 的 kqueue&#xff09;&#xff0c;这是异步非阻塞的底层基石。作用&#xff1a;允许单线程同时监听成百上千个 I/O 事件&#x…

8.1【Q】VMware相关

在图四中&#xff0c;Interface Layer是用来干什么的&#xff1f;IOBus是什么我正在使用VMware虚拟机&#xff0c;但是没有网络&#xff08;宿主机有网&#xff09;&#xff0c;我该如何配置网络&#xff1f;网络连接模式​​&#xff1a;​​NAT模式​​&#xff08;推荐&…

从卡顿到丝滑:大型前端项目 CSS 优化全攻略

摘要 页面样式变重是大前端项目常见的后遗症&#xff1a;CSS 体积越来越大、首屏卡、切页抖、首包飙。核心问题其实就三件事&#xff1a;把首屏必须的样式尽快给到浏览器、把非首屏的样式晚点再说、把多余的样式坚决清理掉。本文用可运行的 Demo 和工程化流程&#xff0c;带你…

CSS基础学习第二天

1.emmet语法1&#xff09;快速生成HTML结构语法---标签名tab键即可生成标签---标签*数量即可生成多个标签---如果有父子级关系的标签&#xff0c;用>&#xff0c;比如ul>litab键---如果有兄弟级的标签&#xff0c;用tab键---如果生成带有类名或者id名字的&#xff0c;直接…

【自记】 Python 中函数参数前加 *(单星号)的解包可迭代对象写法说明

在 Python 中&#xff0c;函数参数前加 *&#xff08;单星号&#xff09;是一种解包可迭代对象的写法&#xff0c;用于将可迭代对象&#xff08;如元组、列表等&#xff09;中的元素逐个传递给函数的参数。具体说明当有一个可迭代对象&#xff08;比如元组 temp (1, 2, 3)&…

C语言————深入理解指针1(通俗易懂)

C语言越学到后面&#xff0c;越会感到恐慌&#xff0c;听到指针、结构体等等这些&#xff0c;想必很多人不自觉的就会感觉很难&#xff0c;就想打退堂鼓了。哈哈哈哈&#xff0c;被小博猜到了吧&#xff01;&#xff01;悄悄告诉你们&#xff0c;小博刚开始学习的时候也是。但是…

香港电讯为知名投资公司搭建高效、安全IT管理服务体系

客户背景 客户为一家世界知名的能源投资公司在中国设立的子公司&#xff0c;在中国拥有涵盖煤炭开采、火力发电、新能源以及能源贸易等贯穿整个能源供应链的业务体系&#xff0c;投资共计2个煤矿、4个电厂&#xff0c;以及7个光伏电站。 客户需求 客户希望通过位于北京的总部…

紧急安全通告:多款 OpenSSH 与 glibc 高危漏洞曝光,CVE-2023-38408 等须立即修复

概述&#xff1a;OpenSSH&#xff08;OpenBSD Secure Shell&#xff09;是加拿大OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现&#xff0c;支持对所有的传输进行加密&#xff0c;可有效阻止窃听、连接劫持以及其他网络级的攻击。 OpenSSH …

随时随地开发:通过 FRP 搭建从 Ubuntu 到 Windows 的远程 Android 调试环境

你是否曾梦想过这样的工作流:在咖啡馆里,你只带着一台轻薄的 Surface Pro,而代码的编译、运行和调试,全部交由家里那台性能强劲的 Ubuntu 台式机来完成?更酷的是,你甚至想将手机直接插在 Surface 上,让远端的 Ubuntu 无缝识别并进行开发。 今天,我们就将这个梦想变为现…

异步编程与面向对象知识总结

文章目录原型链关键字总结原型对象:prototype对象原型:__ proto__面向对象编程封装抽象多态总结异步编程基础循环宏任务嵌套微任务原型链关键字总结 原型对象:prototype 函数的属性,指向一个对象&#xff0c;这个对象是通过该函数作为构造函数创建的所有实例的原型 修改原型会…

Spring Boot + KingbaseES 连接池实战

文章目录一、前言二、什么是数据库连接池&#xff1f;三、SpringBoot KingbaseES 环境准备3.1 加依赖&#xff08;pom.xml&#xff09;3.2 基础连接信息&#xff08;application.yml&#xff09;四、四类主流连接池实战4.1 DBCP&#xff08;迁移型 / 传统项目友好&#xff09;…

矩阵待办ios app Tech Support

Getting Support: mail: 863299715qq.com

React中优雅管理CSS变量的最佳实践

在现代前端开发中&#xff0c;CSS变量&#xff08;也称为CSS自定义属性&#xff09;已成为管理样式系统的重要工具。它们提供了强大的动态样式能力&#xff0c;但在JavaScript中高效地访问和使用这些变量却存在一些挑战。本文将介绍一个优化的解决方案&#xff0c;帮助你在Reac…

智能制造——解读装备制造业智能工厂解决方案【附全文阅读】

适应人群为装备制造企业(如汽车、航空航天、能源装备等)中高层管理者、生产运营负责人、IT 部门(智能制造 / 工业互联网团队)、安全管理专员及园区数字化建设决策者。主要内容围绕装备制造业智能工厂解决方案展开,核心包括建设背景(解决生产安全管理缺失、工序手工记录无…