关于ElementPlus中的表单验证规则详解

 更新时间:2023年06月07日 17:18:29   作者:秋天code  
这篇文章主要介绍了关于ElementPlus中的表单验证,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

关于ElementPlus中表单的校验规则,官网文档已经给出了,但是没有说明性文字,所以我想来记录一下,给出一些文字说明

ElementPlus中的简单校验

ElementPlus的表单的一般结构是:

<el-form>
	<el-form-item>
		<el-input/>
	</el-form-item>
</el-form>

ElementPlus中使用表单校验规则:

  • <script>中给出校验规则对象,主要属性名要与form对象的属性名一致
  • 一个字段的校验规则可以有多个,值是一个数组,数组中的一个对象就是一条校验规则
// 收集表单数据
const form = reactive({
  account: '',
  password: '',
  agree: false
})
// 定义校验规则
// 可以为一个字段指定多条校验规则
// 规则名称与form表单字段一致
const rules = reactive({
  account: [
    // required是否必填,message不符合此规则时的提示信息,
    // trigger触发此条规则校验的时机,有两个值, blur 或 change,默认就是blur和change都会进行校验
    // min此字段的最小长度,max此字段的最大长度
    // pattern 正则表达式
    { required: true, message: '账户不能为空', trigger: 'blur' },
    { min: 6, max: 14, message: '用户名长度为6 - 14位' }
  ]
})

在模版中:

  • <el-form>rules属性绑定规则校验对象
  • <el-form-item>prop属性绑定规则对象的某个字段
<!--
  :model 绑定表单对象
  :rules 绑定表单的校验规则
-->
<el-form
  status-icon
  :model="form"
  :rules="rules"
>
  <!--
	label标签名
	prop属性,指定校验规则中的
  -->
  <el-form-item label="账户" prop="account">
	<!-- v-model将值收集到哪个变量中 -->
	<el-input v-model="form.account" />
  </el-form-item>
  <el-form-item label="密码">
	<el-input v-model="form.password" />
  </el-form-item>
  <el-button size="large" class="subBtn">点击登录</el-button>
</el-form>

演示效果

自定义校验规则

<script>中的规则中,数组中的每一个对象都是一个校验规则,我们只需要给一个对象给出validator()方法的实现即可:
该方法有三个参数:

validator(rule, value, callback){
	// rule此条规则的描述信息
	// value表单中此字段的值
	// 回调函数,通过此函数控制是否校验通过
}

看个例子

// 定义校验规则
const rules = reactive({
// 普通的校验规则
  account: [
    { required: true, message: '账户不能为空', trigger: 'blur' },
    { min: 6, max: 14, message: '用户名长度为6 - 14位' }
  ],
  password: [
  // 自定义校验规则
    {
      validator(rule, value, callback) {
        if (value[0] === '0') {
	      // 校验不通过
          return callback(new Error('密码字段的第一位不能是0'))
        } else {
          // 校验通过
          callback()
        }
      }
    }
  ]
})

在模版中使用为字段使用此条校验规则

<el-form
  :model="form"
  :rules="rules"
>
  <!--
	label标签名
	prop属性,指定校验规则中的
  -->
  <el-form-item label="账户" prop="account">
	<!-- v-model将值收集到哪个变量中 -->
	<el-input v-model="form.account" />
  </el-form-item>
  <el-form-item label="密码" prop="password">
	<el-input v-model="form.password" />
  </el-form-item>
  <el-button size="large" class="subBtn">点击登录</el-button>
</el-form>

演示效果

表单统一校验

如果用户什么都不输入,直接点击登录,那么每个字段的校验规则是不生效的,因为此字段还没有输入。
为了避免用户在不操作表单的情况下,直接提交表单,可以在用户点击提交按钮后,对所有的字段重新激活一次校验。
通过表单对象的一个方法validate()方法,对整个表单的所有内容进行一次验证。

form.validate(callback)

此方法接收一个回调函数,回调函数的第一个参数,是布尔类型,当所有的校验规则都通过时,此值是true,否则false
回调函数的第二个参数是校验未通过的所有字段的数组
在form表单中通过ref属性标识一下

<el-form ref="formRef">
</el-form>

<script>部分

// 获取form表单引用
const formRef = ref(null)
// 当点击登录按钮时的函数
const submit = () => {
  // 获取到真正的表单元素
  formRef.value.validate((isValid, invalidFields) => {
    if (isValid) {
      // 表单所有元素验证通过,可以提交了
      console.log('验证通过')
    } else {
      console.log(invalidFields)
      console.log('验证不通过,不能提交,请检查')
    }
  })
}

到此这篇关于关于ElementPlus中的表单验证的文章就介绍到这了,更多相关ElementPlus表单验证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue超出文本框显示省略号鼠标滑入显示全部的实现方法

    Vue超出文本框显示省略号鼠标滑入显示全部的实现方法

    在Vue项目中经常需要处理文本内容过长的情况,这篇文章主要给大家介绍了关于Vue超出文本框显示省略号鼠标滑入显示全部的实现方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • 在项目vue中使用echarts的操作步骤

    在项目vue中使用echarts的操作步骤

    这篇文章主要介绍了在项目vue中使用echarts的操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Vue实现路由跳转的3种方式超详细分解

    Vue实现路由跳转的3种方式超详细分解

    Vue.js是一款流行的前端JavaScript框架,它提供了多种方式来实现路由跳转,下面这篇文章主要给大家介绍了关于Vue实现路由跳转的3种方式,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • Vue接入高德地图的完整实例

    Vue接入高德地图的完整实例

    近期在用vue做一个环保类的项目,要求使用高德地图,下面这篇文章主要给大家介绍了关于Vue接入高德地图的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • vue的index.html中获取环境变量和业务判断图文详解

    vue的index.html中获取环境变量和业务判断图文详解

    这篇文章主要给大家介绍了关于vue的index.html中获取环境变量和业务判断的相关资料,对vue来说index.html是一个总的入口文件,vue是单页面应用,挂在id为app的div下然后动态渲染路由模板,需要的朋友可以参考下
    2023-09-09
  • Vue2源码解析之自定义指令

    Vue2源码解析之自定义指令

    自定义指令,其实就是在vue提供的钩子中写代码,这篇文章将从源码的角度,带大家深入了解一下Vue2种自定义指令的实现与使用,需要的可以参考一下
    2023-05-05
  • 浅析Visual Studio Code断点调试Vue

    浅析Visual Studio Code断点调试Vue

    本篇文章给大家总结了Visual Studio Code断点调试Vue的方法以及心得分享,需要的朋友参考学习下。
    2018-02-02
  • 常见的5种Vue组件通信方式总结

    常见的5种Vue组件通信方式总结

    在 Vue.js 中,组件通信是开发过程中非常重要的一部分,它涉及到不同组件之间的数据传递和交互,本文将介绍如何实现父子组件之间的有效通信,并盘点了常见的5种Vue组件通信方式总结,需要的朋友可以参考下
    2024-03-03
  • vue中的h函数使用及说明

    vue中的h函数使用及说明

    这篇文章主要介绍了vue中的h函数使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • Vue3造轮子之Typescript配置highlight过程

    Vue3造轮子之Typescript配置highlight过程

    这篇文章主要介绍了Vue3造轮子之Typescript配置highlight过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07

最新评论