首页 > 其他分享 >vue全家桶进阶之路43:Vue3 Element Plus el-form表单组件

vue全家桶进阶之路43:Vue3 Element Plus el-form表单组件

时间:2023-04-20 13:46:24浏览次数:35  
标签:el vue 进阶 form 验证 Element Plus 表单

在 Element Plus 中,el-form 是一个表单组件,用于创建表单以便用户填写和提交数据。它提供了许多内置的验证规则和验证方法,使表单验证更加容易。

使用 el-form 组件,您可以将表单控件组织在一起,并对表单进行验证,以确保提交的数据符合预期的格式和要求。该组件具有以下特性:

  • 支持内置的验证规则和自定义验证函数。
  • 可以通过设置 model 属性将表单数据绑定到表单组件上。
  • 支持表单验证前和验证后的回调函数。
  • 提供了一些常见的表单控件,如输入框、下拉框、单选框、复选框等。

在功能和用法上,el-form 组件在 Element Plus 和 ElementUI 中是相似的,但是在一些细节上有一些变化。

以下是 Element Plus 和 ElementUI 中 el-form 组件的一些主要变化:

  1. 引入方式:ElementUI 使用 Vue.use(ElementUI) 的方式引入组件,而 Element Plus 使用 import 导入组件。例如,在 Vue 3 中使用 Element Plus,我们需要这样导入 el-form 组件:
    • import { ElForm } from 'element-plus'
  2. 样式:Element Plus 使用新的默认主题和样式,不同于 ElementUI 的默认主题和样式。您可以使用 Element Plus 提供的主题样式或自定义主题样式。

  3. 表单验证:在 Element Plus 中,表单验证通过 this.$refs.form.validate() 方法执行。而在 ElementUI 中,表单验证通过 this.$refs.form.validate((valid) => {}) 方法执行。这是因为在 Element Plus 中,表单验证的回调函数是一个可选参数。

  4. 表单控件:Element Plus 中添加了一些新的表单控件,如 TimePickerDatePickerTreeSelect 等。而在 ElementUI 中,这些表单控件是在 el-date-pickerel-time-pickerel-cascader 等组件中提供的。

  5. 翻译:Element Plus 支持更多的语言翻译,并且可以通过自定义翻译对象来支持更多的语言。而在 ElementUI 中,只有默认的语言翻译和几个语言包可用。

 

总之,Element Plus 是 ElementUI 的升级版,提供了更多的表单控件和功能,同时还改进了一些细节和样式。虽然两者之间有一些变化,但是如果您已经熟悉了 ElementUI 的 el-form 组件,那么您将会很快地适应 Element Plus 的使用。

 

el-form 是 Element Plus 中的表单组件,以下是 el-form 常用的属性和方法:

常用属性

  • model:用于绑定表单数据对象,可以使用 v-model 绑定到表单元素。例如,<el-input v-model="formData.username"></el-input>
  • rules:用于设置表单验证规则。规则是一个数组,其中每个对象表示一个验证规则。例如,rules: { username: [ { required: true, message: '请输入用户名', trigger: 'blur' } ] }
  • label-width:用于设置表单元素的标签宽度。
  • label-position:用于设置表单元素标签的位置,可选值有 'right''left''top''bottom'
  • inline:用于设置是否为行内表单。
  • disabled:用于设置是否禁用表单。

常用方法

  • validate:用于触发表单验证,如果验证成功,执行回调函数并传递 true,否则传递 false。例如,formRef.value.validate((valid) => { if (valid) { // 表单验证成功 } else { // 表单验证失败 } })
  • resetFields:用于重置表单数据和验证状态。
  • clearValidate:用于清除表单验证状态。
  • validateField:用于触发指定表单元素的验证。例如,formRef.value.validateField('username', (errorMessage) => { if (errorMessage) { // 验证失败 } else { // 验证成功 } })
  • submit:用于提交表单数据,需要指定一个回调函数,该函数在提交成功或失败时被调用。例如,formRef.value.submit((formData) => { // 表单提交成功 }, (error) => { // 表单提交失败 })

这些是 el-form 常用的属性和方法,当然,还有其他属性和方法可以在需要时使用。在 Element Plus 的官方文档中,您可以找到更详细的文档和示例。

 

 

 

下面是一个简单的 el-form 示例,包括一个输入框和一个提交按钮:

<template>
  <el-form ref="form" :model="formData" :rules="rules">
    <el-form-item label="Username" prop="username">
      <el-input v-model="formData.username"></el-input>
    </el-form-item>
    <el-form-item>
      <el-button type="primary" @click="submitForm">Submit</el-button>
    </el-form-item>
  </el-form>
</template>

<script>
import { ref } from 'vue'
import { ElForm, ElFormItem, ElInput, ElButton } from 'element-plus'

export default {
  components: {
    ElForm,
    ElFormItem,
    ElInput,
    ElButton,
  },
  setup() {
    const formData = ref({
      username: '',
    })

    const rules = ref({
      username: [
        { required: true, message: 'Username is required', trigger: 'blur' },
        { min: 3, max: 16, message: 'Length should be between 3 and 16', trigger: 'blur' }
      ]
    })

    const submitForm = () => {
      formRef.value.validate(valid => {
        if (valid) {
          // Submit form data
        } else {
          console.log('Validation failed')
          return false
        }
      })
    }

    const formRef = ref(null)

    return {
      formData,
      rules,
      submitForm,
      formRef,
    }
  }
}
</script>

 

标签:el,vue,进阶,form,验证,Element,Plus,表单
From: https://www.cnblogs.com/beichengshiqiao/p/17336480.html

相关文章

  • vue3微信公众号商城项目实战系列(12)项目发布到服务器上
    本篇介绍如何将vue3项目打包发布到服务器上,然后在微信公众号上打开。vue3发布之前需要对项目进行编译,编译时会在项目根目录下创建dist文件夹,编译后的文件会存放在这里。 在编译之前,我们在public目录下建一个config.js的文件,里面放如下的代码:constconfig={baseUr......
  • java导出Excel例子(poi)
    publicclasscreatFile{staticpublicvoidmain(String[]args)throwsException{FileOutputStreamfos=newFileOutputStream("d:\\creatFile.xls");HSSFWorkbookwb=newHSSFWorkbook();HSSFSheets=wb.createSh......
  • 收藏 JSP自定义标签EL表达式取值问题
    给你个标签的例子自己看看吧!标签:<framework:VoucherCodeToNamecode=""/>tld.xml<tag><name>VoucherCodeToName</name><tagclass>com.itown.crm.fee.vouchermanager.util.VoucherCodeToNameTag</tagclass>&......
  • PL/SQL Developer自动补全SQL技巧
    s=SELECTt.*FROMtw=WHEREb=BETWEENANDl=LIKE'%%'o=ORDERBYinsw=IN(SELECTaFROMaWHEREa)sw=SELECTt.*FROMtWHEREtsc*=SELECTCOUNT(*)FROMtst=SELECTt.*,t.ROWIDFROMtf=FORUPDATEu=UPDATEtSET......
  • xshell断开ssh远程窗口,nginx进程被杀死
    主要原因:是openssh8+以上的版本对安全策略做了修改解决方法:在/usr/lib/systemd/system/[email protected] 配置增加KillMode=process[Unit]Description=OpenSSHper-connectionserverdaemonDocumentation=man:sshd(8)man:sshd_config(5)Wants=sshd-keygen.serviceAfter=sshd-ke......
  • ASEMI代理ADM202EARNZ-REEL原装ADI车规级ADM202EARNZ-REEL
    编辑:llASEMI代理ADM202EARNZ-REEL原装ADI车规级ADM202EARNZ-REEL型号:ADM202EARNZ-REEL品牌:ADI/亚德诺封装:SOIC-16批号:2023+引脚数量:16安装类型:表面贴装型ADM202EARNZ-REEL汽车芯片ADM202EARNZ-REEL特征特征符合89/336/EECEMC指令符合IEC1000-4-2(801.2)的ESD保护±8k......
  • 修改maven3项目的默认的编译级别(compile level)
    评:听闻maven的鼎鼎大名打算在最近的一个项目中试下爽,结果遇到了这个问题,虽对项目影响不大,但做技术刨根问题是必须的了,少废话。1.cmd命令建立web项目:mvnarchetype:generate-DgroupId=biz.yunduo-DartifactId=dts-DpackageName=dts-DarchetypeArtifactId=maven-archetype-we......
  • Vue3 toRef与toRefs
    视频直接用ref是创建新的对象10.toRef作用:创建一个ref对象,其value值指向另一个对象中的某个属性。语法:constname=toRef(person,'name')应用:要将响应式对象中的某个属性单独提供给外部使用时。扩展:toRefs与toRef功能一致,但可以批量创建多个ref对象,语法......
  • Elasticsearch应用
     vivo互联网的垂直搜索业务刚开始用Elasticsearch时,从0到1的过程没有太大挑战,很快就能实现垂搜的基本功能。但是一旦实现了这个功能之后,搜索引擎需要持续优化迭代,大家会发现诸如分词效果不好,数据召回率或准确率不够等方面的问题。数据索引、检索以及排序这三个方面都有做......
  • 如何在html页面引入Element组件
    相关步骤1、引入相关链接<linkrel="stylesheet"href="https://unpkg.com/[email protected]/lib/theme-chalk/index.css"><scriptsrc="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><scriptsrc="https://un......