返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue基础之详解ElementUI的表单
  • 189
分享到

vue基础之详解ElementUI的表单

2024-04-02 19:04:59 189人浏览 独家记忆
摘要

目录ElementUI表单一个简单的案例表单的主要组件表单组件的使用行内的表单对齐方式表单验证自定义的验证规则表单内组件尺寸控制总结fORM模块的属性form模块的方法Form Me

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以行内形式展示校验信息

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容! 

--结束END--

本文标题: vue基础之详解ElementUI的表单

本文链接: https://lsjlt.com/news/139112.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue基础之详解ElementUI的表单
    目录ElementUI表单一个简单的案例表单的主要组件表单组件的使用行内的表单对齐方式表单验证自定义的验证规则表单内组件尺寸控制总结form模块的属性form模块的方法Form Me...
    99+
    2024-04-02
  • vue基础之ElementUI表格详解
    目录ElementUI 表格示例:一个基本的表格el-table的属性el-table-column的属性多级表头获取表格,重点说下!!!单选多选排序筛选自定义列展开行 总...
    99+
    2024-04-02
  • Vue之ElementUI Form表单校验
    表单校验是前端开发过程中最常用到的功能之一,根据个人的工作经验总结在此对表单校验功能的基础用法进行整理说明。 以下是form的demo el-form :model="dynam...
    99+
    2024-04-02
  • vue基础语法之插值表达式详解
    目录一、vscode插件介绍二、插值表达式介绍三、插值表达式示例1四、插值表达式示例2五、插值表达式注意点六、插值表达式补充总结一、vscode插件介绍 在我们演示插值表达式之前,我...
    99+
    2024-04-02
  • Vue基础之侦听器详解
    目录vue中什么是侦听器侦听器的用法vue侦听器-watchvue侦听器-深度侦听和立即执行总结vue中什么是侦听器 开发中我们在data返回的对象中定义了数据,这个数据可...
    99+
    2024-04-02
  • Python基础详解之列表复制
    目录一、前言二、直接赋值三、用切片赋值四、copy()复制实现赋值五、deepcopy()复制实现赋值六、copy()和deepcopy()的区别6.1  copy()6....
    99+
    2024-04-02
  • JSP之EL表达式基础详解
    一、EL表达式简介 EL表达式全称:Expression Language,即表达式语言 EL表达式作用:代替JSP页面中表达式脚本进行数据的输出 EL表达...
    99+
    2024-04-02
  • vue中ElementUI表单是怎样的
    本篇内容介绍了“vue中ElementUI表单是怎样的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ElementUI表单el的表单官网内容...
    99+
    2023-06-29
  • Vue elementUI表单嵌套表格并对每行进行校验详解
    目录效果展示代码链接关键代码表格数据组件嵌套校验方法重置方法完整代码总结效果展示 先看看这是不是需要的效果^_^ 如图,ElementUI 表单里嵌套了表格,表格内每行能进行【保存...
    99+
    2024-04-02
  • 基于Vue+elementUI如何实现动态表单的校验功能
    小编给大家分享一下基于Vue+elementUI如何实现动态表单的校验功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言开发...
    99+
    2024-04-02
  • Java基础之StringBuffer详解
    目录一、前言二、用法三、结果四、长度 容量五、IStringBuffer接口六、value和capacity一、前言 StringBuffer是可变长的字符串 1.append 追加...
    99+
    2024-04-02
  • Java基础之Maven详解
    目录一、Maven环境的搭建1. 为什么要学习Maven?2. Maven项目架构管理工具3. 下载安装Maven4. 配置环境变量5. 阿里云...
    99+
    2024-04-02
  • Java基础之TreeMap详解
    目录一、写在前面二、定义三、成员变量四、内部类五、构造器六、成员方法一、写在前面 TreeMap的底层数据结构是红黑树,且TreeMap可以实现集合元素的排序。 所以TreeMap...
    99+
    2024-04-02
  • Java基础之ClassLoader详解
    目录一、ClassLoader简介二、内置的CLassLoader的类型三、BootstrapClassLoader四、ExtClassLoader五、AppClassLoader六...
    99+
    2024-04-02
  • Java基础之FastJson详解
    目录一、fastJson将json格式字符串转化成List集合二、fastJson将json格式字符串转化成对象三、FastJson将对象或集合转化成json格式字符串四、FastJ...
    99+
    2024-04-02
  • vue基础之面包屑和标签tag详解
    目录面包屑导航(breadcrumb)标签(tag)1.在main.js中引用tag2.在页面或组件中使用tag3.Tag的属性4.Tag的事件有两个,点击和关闭总结面包屑导航(br...
    99+
    2024-04-02
  • JavaScript基础之运算符与表达式详解
    目录一、===二、||三、与..四、...五、[] {}[]{}一、=== 严格相等运算符,用作逻辑判断 1 == 1 // 返回 true 1 == '1' ...
    99+
    2023-05-16
    JavaScript运算符 表达式 JavaScript运算符 JavaScript 表达式
  • Vue之表单事件数据绑定详解
    <body> <div id="root"> <form action="" @submit.prevent="demo"...
    99+
    2024-04-02
  • Vue模仿ElementUI的form表单实例代码
    实现要求 模仿 ElementUI 的表单,分为四层结构:index 组件、Form 表单组件、FormItem 表单项组件、Input 和 CheckBox 组件,具体分工如下: ...
    99+
    2024-04-02
  • vue中的ElementUI的使用详解
    登录+sessionStorage 效果展示 登录成功后会把用户id存入前端的sessionStorage,拦截器会根据是否存在用户id来进行拦截 也可以将用户权限存入sessi...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作