【Vue新手必看】ElementUI表单实战教程,轻松掌握!

ElementUI表单

el的表单官网内容很多,看了一眼觉得心累了。但实际上它使用起来非常的方便,el为我们封装了各种组件,样式也大众。

一个简单的案例

bb65f202312231059185670.png

代码如下(使用时确保引入了相关的组件)

<template>
<el-form ref="form" :model="form" label-width="80px"><el-form-item label="用户名"><!-- form-item用于显示关联的文件 --><el-input v-model="form.name"></el-input></el-form-item><el-form-item label="密码"><el-input type="password" v-model="form.pwd"></el-input></el-form-item><el-form-item><el-button type="primary" @click="onSubmit">登录</el-button><el-button>取消</el-button></el-form-item>
</el-form>
</template>
<script>export default {data() {return {form: {name: '',pwd:''}}},methods: {onSubmit() {console.log('submit!');}}}
</script>

看起来还是挺多行是吗?去掉些必要标签还有些声明,剩下的是:el-form,el-input,el-form-item三个组件。el-form是必要的,对布局有影响,el-form-item是做为关联表单元素的文字,el-input便是我们的输入框了。布局已经预设,用这三个便可以是最基本的表单了。是否方便?

表单的主要组件

常用的表单组件,输入框,下拉框,单选框,多选框,文本域,对应的组件是:Form,FormItem,Input,Select,Option,Checkbox,Radio。

还有一些同样是实用组件,开关(Switch)、日期选择器(DatePicker),时间选择器(TimePicker)单选框组(RadioGroup),多选框组(CheckboxGroup)等

表单组件的使用

不管哪一种组件都一样,先main.js中引入模块,然后在页面中即可使用:

// main.js
import {Form,FormItem,Input,CheckboxGroup,Radio, RadioGroup,Switch} from 'element-ui';Vue.use(Form)
Vue.use(RadioGroup)
Vue.use(Radio)
Vue.use(FormItem)
Vue.use(Input)
// ...需要哪些引入哪些

假设在form.vue中使用,代码多了看了烦,我只写一个下拉框、开关、文本域。(这叫抛砖引玉,xixi)

<template>
<el-form ref="form" :model="form" label-width="80px"><el-form-item label="活动区域"><!-- 记得使用v-model来绑定表单字段 --><el-select v-model="form.region" placeholder="请选择活动区域"><el-option label="区域一" value="shanghai"></el-option><el-option label="区域二" value="beijing"></el-option></el-select></el-form-item><el-form-item label="即时配送"><!-- 记得使用v-model来绑定表单字段 --><el-switch v-model="form.delivery"></el-switch></el-form-item><el-form-item label="活动形式"><!-- 记得使用v-model来绑定表单字段 --><el-input type="textarea" v-model="form.desc"></el-input></el-form-item><el-form-item><el-button type="primary" @click="onSubmit">立即创建</el-button><el-button>取消</el-button></el-form-item>
</el-form>
</template>
<script>export default {data() {return {form: {region: '',// 区域delivery: false,// 是否及时配送desc: '' //活动形式描述}}},methods: {onSubmit() {console.log('submit!');}}}
</script>

效果如下

55a61202312231101157500.png

行内的表单

不难发现我们的组件都是再一个组件站一行,如果要使组件变为行内元素也肥肠简单。给el-form组件添加:inline="true"的属性即可(属性前加冒号才会认值为true是一个布尔,否将认为是字符串)

<el-form :inline="true"><!--// 如此即可 -->
</el-form>

对齐方式

这里的对齐指的是label的文本对齐方式。同样是加载el-form组件的label-position属性中

label-position的可用值: left,right,top(top为label在上,组件再下的显示,不在同一行)。如下

<el-form label-position="left"><!--// 如此即可 -->
</el-form>

表单验证

表单验证的关键点有三:

  1. el-form组件中添加:rules="规则组对象"属性添加,值为验证规则的对象
  2. 表单组件添加prop属性为组件指定验证规则。prop属性加在el-form-item上
  3. 定义验证规则的对象

验证一般用于输入框

如下代码:

<template>    
<el-form ref="form" :rules="rules" :model="form" label-width="180px"><el-form-item label="活动名称,长度限制" prop="name"><el-input v-model="form.name"></el-input></el-form-item><el-form-item label="url,类型限制" prop="u"><el-input v-model="form.url"></el-input></el-form-item>
</el-form>
</template>
<script>export default {data() {return {form: {name: '',url:'',},rules:{name:[{ required: true, message: '请输入活动名称', trigger: 'blur' },{ min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }],u:[{ type: 'url', required: true, message: '必须为规范的url地址', trigger: 'change' }]},}},}}
</script>

abb7c202312231102519867.png

重点提一下,如过要验证数字类型,那么。需要把v-model换成v-model.number!!! 切记 !!!

<el-form-item label="url,类型限制" prop="u"><!-- 加上.number修饰符才会把输入值转为数字类型 --><el-input v-model.number="form.num"></el-input>
</el-form-item>

自定义的验证规则

自定义验证与预定义验证的不同在于一点(考考你,共有哪三个关键点):

自定义规则对象的编写形式

<script>
export default {data() {let checkNum = (rules,val,callback)=>{rules // 这里会得到定义的校验对象的属性if(!Number.isInteger(val)){// 如果要提示错误信息,那么通过第三个参数回调出去,参数值为Error实例callback(new Error('请输入数值'))}}return {// 校验规则rules:{u:[{ type: 'url', required: true, message: '必须为规范的url地址', trigger: 'change' },// 添加一条自定义的验证,值为函数名{validator:checkNum,targger:'change'}],},}}
}
</script>

表单内组件尺寸控制

通过给el-form添加size属性,来指定表单元素的尺寸。很简单,如下

size的可用值:medium / small / mini

<el-form size="miniz">
</el-form>

总结form模块的属性

e50a0202312231104126732.png

form模块的方法

Form Methods(官方文档的,了解一下)

87652202312231104285909.png

如何使用这些方法?

<template><el-form ref="f"></el-form>
</template>
<script>// 重置表单const from = this.$refs.f.resetFields()
</script>

form-item模块的属性

66635202312231105027429.png

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

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

相关文章

麒麟信安日志轮询分割操作说明

1、背景介绍 由于模块上面硬盘容量有限&#xff0c;需要定时清理系统日志。为了方便用户使用&#xff0c;在系统中设定自动日志轮询操作&#xff0c;让日志占用容量由操作系统自动管理&#xff0c;用户无需担心日志太多把硬盘容量占满。 2、操作说明 新建需要分割的日志logr…

2024应届大学生,为云计算高薪岗位做好准备了吗?

云计算正处于快速发展阶段&#xff0c;对于企业和个人来说&#xff0c;云计算提供了方便、灵活和智能的解决方案&#xff0c;对各行各业都有着重要的影响和推动作用。 随着云计算新市场、新业务、新应用的不断出现&#xff0c;人力需求迅猛。国家相继出台一系列政策大力扶持云…

UG通过曲线组

通过曲线组&#xff08;放样&#xff09; 通过至少两个截面之间放样生产实体或曲面 截面可以是开放或封闭的曲线或体的边 放样规则&#xff1a; 1、截面顺序不能颠倒 2、截面方向必须一致&#xff0c;注意鼠标选择的位置 3、截面节点必须对应&#xff0c;必要时打断图形 …

HackTheBox - Medium - Linux - Jupiter

Jupiter Jupiter 是一台中等难度的 Linux 机器&#xff0c;它有一个使用 PostgreSQL 数据库的 Grafana 实例&#xff0c;该数据库在权限上过度扩展&#xff0c;容易受到 SQL 注入的影响&#xff0c;因此容易受到远程代码执行的影响。一旦站稳脚跟&#xff0c;就会注意到一个名…

虚拟机的下载、安装(模拟出服务器)

下载 vmware workstation&#xff08;收费的虚拟机&#xff09; 下载vbox 网址&#xff1a;Oracle VM VirtualBox&#xff08;免费的虚拟机&#xff09; 以下选择一个下载即可&#xff0c;建议下载vbox&#xff0c;因为是免费的。安装的时候默认下一步即可&#xff08;路径最好…

【分布式技术专题】「授权认证体系」深度解析OAuth2.0协议的原理和流程框架实现指南(授权流程和模式)

深度解析OAuth2.0协议的原理和流程框架实现指南 背景介绍OAuth1.0协议访问令牌案例分析 OAuth2.0OAuth2.0与OAuth1.0 OAuth2.0协议体系的Roles角色OAuth定义了四个角色资源所有者资源服务器客户端授权服务器 传统的客户机-服务器身份验证模型的问题协议流程 认证授权类型授权码…

14 Vue3中使用v-model绑定输入框

概述 v-model用于实现双向数据绑定&#xff0c;使用v-model绑定输入框是Vue3中最常见的用法之一。 比如&#xff0c;在制作登录界面的时候&#xff0c;我们会使用v-model绑定用户名和密码&#xff0c;这里的用户名和密码都是输入框。 基本用法 我们创建src/components/Demo…

80x86汇编—指令系统

文章目录 MOV非法传送 XCHGXLAT堆栈指令 push 和 pop标志寄存器指令运算指令控制转移类指令&#xff08;重点&#xff09;条件转移指令 顺序是按照我们老师教的顺序&#xff0c;仅仅作为复习笔记。 汇编入门真的简单&#xff0c;深入难&#xff0c;毕竟学过计组CPU都只寄组的难…

华为安防监控摄像头

华为政企42 华为政企 目录 上一篇华为政企城市一张网研究报告下一篇华为全屋wifi6蜂鸟套装标准

电商数据之巅:挖掘无限价值的蓝海

在数字时代的大潮中&#xff0c;数据已成为新的黄金和石油&#xff0c;尤其在电商领域。电商平台每天都在产生海量的数据&#xff0c;这些数据不仅是对消费者行为的记录&#xff0c;更是隐藏着无限的商机和价值。本文将带你走进电商数据的神奇世界&#xff0c;探寻其无尽可能的…

Xcode15 iOS 17 Simulator 离线安装,模拟器安装

Xcode 15 安装包的大小相比之前更小&#xff0c;因为除了 macOS 的 Components&#xff0c;其他都需要动态下载安装&#xff0c;否则提示 iOS 17 Simulator Not Installed。 如果不安装对应的运行模拟库 无法真机和模拟器运行&#xff0c;更无法新建项目。但是由于模拟器安装包…

canvas入门笔记(上)

Canvas Canvas简介 Canvas API 提供了一个通过JavaScript 和 HTML的元素来绘制图形的方式。它可以用于动画、游戏画面、数据可视化、图片编辑以及实时视频处理等方面。 Canvas API 主要聚焦于 2D 图形。而同样使用<canvas>元素的 WebGL API 则用于绘制硬件加速的 2D 和…