vue基础:ElementUI的表单

现代 Web 开发工具箱:Element-UI 表单组件全攻略(二) 我们将官网的代码复制过来然后我们可以看到 , el-form-item 标签双向数据绑定了 ruleForm 对象的 pass 属性 , 那我们也就需要创建出 ruleForm 对象 , 然后将 pass 属性初始化为空然后我们就可以对 pass 进行自定义的验证规则 , 我们按照官网的方式来实现那这个validatePass 实际上是一个函数 , 我们需要在这个函数中设置具体的校验规则validatePass 函数也是写在 data 中的整体代码如下 :这个位置粘贴容易混乱 , 务必小心。 阅读详情

ElementUI表单

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

一个简单的案例

请添加图片描述

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

<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>

效果如下
请添加图片描述

行内的表单

不难发现我们的组件都是再一个组件站一行,如果要使组件变为行内元素也肥肠简单。给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>

请添加图片描述

重点提一下,如过要验证数字类型,那么。需要把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模块的属性

属性属性值说明
modelobject表单数据对象
rulesobject验证规则
inlineBoolean默认false是否设置为行内元素
label-positionright/left/top默认right表单域标签对齐方式
label-widthstring例如150px标签标签(label)的宽度
sizemedium / small / mini表单组件尺寸
status-iconboolean默认false是否显示校验结果的icon
disabledboolean默认false作用域为整个表单。不用多解释了

form模块的方法

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

方法名说明参数
validate对整个表单进行校验的方法,参数为一个回调函数。该回调函数会在校验结束后被调用,并传入两个参数:是否校验成功和未通过校验的字段。若不传入回调函数,则会返回一个 promiseFunction(callback: Function(boolean, object))
validateField对部分表单字段进行校验的方法Function(props: array | string, callback: Function(errorMessage: string))
resetFields对整个表单进行重置,将所有字段值重置为初始值并移除校验结果—
clearValidate移除表单项的校验结果。传入待移除的表单项的 prop 属性或者 prop 组成的数组,如不传则移除整个表单的校验结果Function(props: array | string)

如何使用这些方法?

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

form-item模块的属性

参数参数值说明
propstring传入model的字段。在使用 validate、resetFields 方法的情况下,该属性是必填的
labelstringtag text
label-widthstring例如150px。标签占用的框度
requiredboolean是否必填
rulesobject表单校验规则
sizemedium / small / mini组件尺寸
show-messageboolean默认true是否显示校验错误信息
inline-messageboolean默认false以行内形式展示校验信息
ElementUI 实现动态表单数据校验(已解决) 日常问题记录:ElementUI 实现动态表单数据校验(已解决) 阅读详情

相关推荐

现代 Web 开发工具箱:Element-UI 表单组件全攻略(一)

在这篇文章中,我们将深入探讨构成现代 Web 表单的各个组件,这些组件是前端开发中不可或缺的部分。我们会详细讲解如何使用 Element-UI 库中的 Radio 单选框、Checkbox 多选框、Input 输入框以及 Select 下拉列表选择器等组件,来创建交互性强、用户体验良好的表单。通过实际代码示例和逐步分析,将指导您如何有效地利用这些组件来构建表单,并介绍它们的属性、事件和方法。

m0_53117341的博客 986

Element el-form 表单详解

本文目录1. 前言2. 基本用法3. 行内表单4. 标签对齐方式5. 调整尺寸6. 小结 1. 前言 表单是使用频率非常高的组件了,HTML默认提供的表单是没啥样式的,而Element对表单提供了封装形成了el-form组件,使整个表单的样式整齐划一。 本篇就来介绍下表单的使用,主要介绍的是样式方面的使用。 2. 基本用法 代码: 基本用法: <el-form ref="form" label-width="80px" style="border:1px solid #C4E1C5;padd

编程副队长 4万+

VUE封装ElementUI中的Dialog表单弹窗

第一步,我们先搭建好手脚架以及把需要的elementUI也映入进来。 vue的手脚架搭建大家可参考:使用vue-cli搭建vue项目完整版或者官方的网站 elementUI的引入也挺简单的,大家可以直接去官方网站就可以找到引入的方法。 第二步,在components中建立一个vue文件,然后可以去elementUI的官网中把Dialog组件中的表单弹窗复制过来 <template> <div> <el-dialog :modal="t

qq_42391080的博客 5593

【Element入门】3、Element UI 表单组件详解

Element UI 是一款基于 Vue.js 的高效、简洁的前端组件库,专为开发者和设计师提供丰富的 UI 组件。它不仅易于上手,还具备高度的可定制性,能够满足多样化的项目需求。通过使用 Element UI,开发者可以快速构建高质量的现代 Web 应用,实现优雅且一致的用户界面,从而显著提升开发效率和用户体验。本系列文章深入探讨了 Element UI 的各项功能及最佳实践,帮助你在实际项目中更好地应用和优化这一强大的工具。

weixin_52938153的博客 3301

Vue与elementUI表单嵌套表格实现每一项表单验证

前言:有时候表单会要已表格的样式布局,实现表格里每一项表单的验证,其实关键在于表单项设置prop,绑定输入框的model值,这个model值来自于表格的数据返回(scope.row.数据值) 表单prop验证,表格显示,表单嵌套表格实现表格每一项的验证 Prop绑定表单对象中对应的部分,才能用对应的规则。 所以在表单项中验证规则必须要有prop, :prop="'tableData.' + scope.$index + 'date'" 才能使用:rules="alldata.rule.

qq_45163356的博客 2518

在虚拟机上搭建FTP服务器

chroot_list_file=/etc/vsftpd/chroot_list # 对chroot_list下用户限制。[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf #打开配置文件。# 指定用户的shell: -s /usr/bin/nologin。# 在配置文件中找到以下几行代码, 去掉注释(去掉 "#"号)# 指定用户主目录:/data/ftp/ftpuser -M。(2)修改配置文件,路径/etc/vsftpd/ 下的文件。

weixin_70753380的博客 3209

【vue2】使用elementUI进行表单验证实操(附源码)

vue2使用elementUI完成表单验证。

嗨,朋友你好!我是前端领域的工作者 9316

Tomcat启动过程中cmd窗口(控制台)中文乱码的问题

tomcat启动时,启动过程日志中文乱码的处理方法。

寻码启示 1942

【vue2】使用elementUI进行表单验证实操

UI与Vant组件库的导入、注册、使用方法。

YQCC1的博客 4656

STM32解码EM4100的曼彻斯特编码(库函数版本)

前言: 前些日子老师布置一个任务叫我们焊接一个RFID读卡器,其中刚好我们手上也有一个STM32F103RBT6开发板,老师于是布置任务叫我们用STM32完成对EM4100进行读卡操作 EM4100简介: 中 文 名:EM4100卡 存储容量:64bit 工作频率:125KHZ 读写距离:2-15cm 产品名称:EM4100/EM4102卡 芯片类型:μEM瑞士微电 EM4100/EM4102 擦写寿命:读不限,只读 外形尺寸:ISO标准卡/厚卡 封装材料:PVC、ABS 典型应用:身份识别、考勤系统、门禁

Gancenty 8597

网安保研避坑指南:中科院信工所各研究室真实体验与导师选择建议

本文为中科院信工所网络安全保研生提供深度指南,详细解析了信工所六个研究室的研究方向、真实氛围与导师选择策略。文章特别强调,选择导师是决定研究生体验的关键,并提供了针对各研究室的避坑建议与实战调研方法,帮助学生做出明智选择。

weixin_29210727的博客 1575

Vue2+ElementUI表单、Form组件的封装

在 Vue2 项目中,ElementUI 的 `el-form` 组件是常用的表单组件。它提供了丰富的功能和样式,可以满足各种需求。但是,在实际开发中,我们经常会遇到一些重复性的需求

qq_43657722的博客 3038

保姆级教程:在爱快iKuai虚拟机里装OpenWrt旁路由,实现去广告和特殊功能

本文提供在爱快iKuai虚拟机中安装OpenWrt旁路由的详细教程,帮助用户实现去广告和特殊功能扩展。通过分步指导,包括虚拟机配置、网络设置和功能优化,打造稳定高效的家庭网络环境,特别适合软路由爱好者和网络管理员。

weixin_31364787的博客 816

Vue之ElementUI Form表单校验

表单校验是前端开发过程中最常用到的功能之一,根据个人的工作经验总结在此对表单校验功能的基础用法进行整理说明 首先对el-form标签中的几个关键属性进行说明, ref: 当前表单的唯一标识 model: 表单绑定的对象 rules: 字段校验规则 而最关键的一点是el-form-item标签中的prop属性,属性值必须与绑定的字段名称保持一致。 rules字段用来定义各个字段具体的校验规则,用法请查阅开篇的demo示例,其中required标识字段是否必填,message为校验提.

IKUN__的博客 4428

【Mode】Mode expansion monitors

对于宽带仿真,因为被支持的模式可能是波长的函数,因此,推荐在波长范围内增加频率的采样点数量去计算支持的波导模式分布或者光纤模式分布。对于宽带仿真,如果在被计算模式上的频率点的数量与通过 frequency-domain monitors 被测量的频率点的数量不匹配,这种情况是正常的。Mode expansion monitors 对于仿真偏振转换器是十分有用的,比如,在偏振转换器中,当你想要提取从输入模式到输出模式的转换效率,或者提取一个装置的 S 参数。给出了进入到被选择模式中的合透射率,

u011699626的博客 2759

L3自动驾驶时代,域控制器核心解析(第一篇:架构演进与五域基础)

本文作为L3域控制器系列的第一篇,核心梳理了3个关键内容:L3时代为什么必须用域控制器:解决分布式ECU的协同、算力、迭代难题;域控制器的演进路线:从分布式ECU→域集中式→中央计算平台;博世五域架构的核心解析:五大域的定位、功能与典型方案。后续将持续更新系列文章,重点覆盖:第二篇:L3对域控制器的关键技术要求(传感器、算力、线控、软件、通信);第三篇:域控制器全产业链拆解(上游芯片、中游器件、下游总成);第四篇:域控制器的产业机遇与国产替代进展。

getusushu的博客 527

Vue ElementUI 表单设计器 代码生成器

界面效果 体验地址 github gitee(国内) 特色: 1、支持ElementUI组件库,未来会持续添加更多组件库支持。 2、支持多达36种控件,满足各种业务场景。 3、组件配置详细,基本1:1还原了组件库的所有配置,当然,不常用的配置为了界面简洁我们放在了高级设置里。 4、支持各种子表单控件,满足复杂的数据格式。 5、支持生成json逆向渲染表单,json格式完全遵循vue render标准,支持透传属性、事件、插槽等给内部控件,灵活度丝毫不亚于直接生成vue代码。 6、支持

记事本 6698

计算机毕设项目一:基于卷积神经网络、resnet、VGG化妆品分类识别 完整代码数据可直接运行

计算机毕设项目一:基于卷积神经网络、resnet、VGG化妆品分类识别 完整代码数据可直接运行

653

VUE ElementUI表单排版的一些微调整方法

ElementUI封装的组件都是有自已特定样式的,一般都是需要使用深度作用选择器/deep/修改ElementUI的内置样式,这样才能使自已的样式生效。

Small world 1133

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

vue + elementUI 实现二次封装表单

vue + elementUI 实现二次封装表单

m0_64344940的博客 2107

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

基于elementUI封装了基础表单组件

包含了HTML、CSS、JavaScript、HTTP、TCP协议、浏览器、VUE、React、数据结构和算法,一共201道面试题,并对每个问题作出了回答和解析。有需要的小伙伴

梅花寺 1196

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

form表单的三种封装方法(Vue+ElementUI)

这里的要点主要有: 监听表单组件的数据变化: 每个表单组件都有一个name标识它的业务含义,绑定的数据也是formData[field.name],@input事件传递updateForm,在updateForm里面更新this.formData[name],保证了this.formData里面的数据是和表单组件选择/填写的内容一致。重置时改变表单组件的数据: 因为组件内部会监听父元素的value,所以这里只要清空this.formData的值,组件内部的数据也会跟着清空。

WY_ALA的博客 4660

基于Vue,ElementUI开发的一款表单设计器

介绍 基于Vue,ElementUI开发的一款表单设计器,提高表单开发效率的利器,让开发者从枯燥的表单代码编写中解放出来 工具地址:http://tools.xiaoyaoji.cn/form GitHub地址:https://github.com/GavinZhuLei/vue-form-making 特性 可视化配置页面 提供栅格布局,并采用flex实现对齐 一键预览配置的...

GavinZhulei的博客 5万+

Vue拖拽表单设计器实战指南:可视化表单构建与ElementUI组件集成

传统表单开发方式面临着诸多挑战:产品经理频繁调整表单字段和布局、重复编写相似的表单验证逻辑、不同项目间表单组件无法复用。这些痛点不仅消耗开发时间,还增加了维护成本。Vue.js表单设计器正是解决这些问题的创新方案,通过拖拽式开发,这个低代码平台能让你在几分钟内完成复杂表单的构建。 ## 核心功能与界面设计 ### 直观的拖拽界面设计 表单设计器采用创新的三区布局设计,让表单构建如搭积木般简单

gitblog_00926的博客 1039
上一篇: vue基础:面包屑和标签tag
下一篇: node.js:匿名函数以及阻塞、非阻塞
jayLog
博客等级 码龄7年 318粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jayLog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值