vue + element-plus自定义表单验证(修改密码业务)的示例

 更新时间:2025年04月16日 10:07:31   作者:胚芽鞘681  
这篇文章主要介绍了vue + element-plus自定义表单验证(修改密码业务),本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧

写一个vue组件Password.vue

没有表单验证只有3个表单项

<template>
  <div>
    <el-form>
      <el-form-item label="旧密码">
        <el-input></el-input>
      </el-form-item>
      <el-form-item label="新密码">
        <el-input></el-input>
      </el-form-item>
      <el-form-item label="验证密码">
        <el-input></el-input>
      </el-form-item>
    </el-form>
  </div>
</template>
<script setup>
</script>

路由省略

给这个表单绑定一个对象

<template>
  <div>
    <el-form :="data.form">
      <el-form-item label="旧密码" v-model="data.form.oldPassword">
        <el-input ></el-input>
      </el-form-item>
      <el-form-item label="新密码" v-model="data.form.password">
        <el-input></el-input>
      </el-form-item>
      <el-form-item label="验证密码" v-model="data.form.confirmPassword">
        <el-input></el-input>
      </el-form-item>
    </el-form>
  </div>
</template>
<script setup>
import {reactive}  from "vue";
const data = reactive({
  form: {
    oldPassword: '',
    password: '',
    confirmPassword: ''
  }
})
</script>

给表单绑定规则注意表单项一定要有prop属性 属性值对应 data.rules里的属性

<template>
  <div>
    <el-form :model="data.form" :rules="data.rules">
      <el-form-item label="旧密码" prop="oldPassword" >
        <el-input v-model="data.form.oldPassword"></el-input>
      </el-form-item>
      <el-form-item label="新密码"   prop="password">
        <el-input v-model="data.form.password"></el-input>
      </el-form-item>
      <el-form-item label="验证密码" >
        <el-input v-model="data.form.confirmPassword"></el-input>
      </el-form-item>
    </el-form>
  </div>
</template>
<script setup>
import {reactive}  from "vue";
const data = reactive({
  form: {
    oldPassword: '',
    password: '',
    confirmPassword: ''
  }
  ,
  rules: {
    oldPassword: [
      { required: true, message: '请输入旧密码', trigger: 'blur' },
      { min: 6, max: 32, message: '长度在 6 到 32 个字符', trigger: 'blur' }
    ],
    password: [
      { required: true, message: '请输入新密码', trigger: 'blur' },
      { min: 6, max: 32, message: '长度在 6 到 32个字符', trigger: 'blur' }
    ]
  }
})
</script>

添加自定义规则注意规则有优先级的

<template>
  <div>
    <el-form :model="data.form" :rules="data.rules">
      <el-form-item label="旧密码" prop="oldPassword" >
        <el-input v-model="data.form.oldPassword"></el-input>
      </el-form-item>
      <el-form-item label="新密码"   prop="password">
        <el-input v-model="data.form.password"></el-input>
      </el-form-item>
      <el-form-item label="验证密码"   prop="confirmPassword">
        <el-input v-model="data.form.confirmPassword"></el-input>
      </el-form-item>
    </el-form>
  </div>
</template>
<script setup>
import {reactive}  from "vue";
const validatePass1 = (rule, value, callback) => {
  if (value === '') {
    callback(new Error('请输入新密码'));
  } else if (value !== '123') {
    callback(new Error('旧密码错误'));
  }else{
    callback();
  }
}
const validatePass2 = (rule, value, callback) => {
  if (value === '') {
    callback(new Error('请再次输入新密码'));
  } else if (value !== data.form.password) {
    callback(new Error('两次输入密码不一致!'));
  } else {
    callback();
  }
}
const data = reactive({
  form: {
    oldPassword: '',
    password: '',
    confirmPassword: ''
  }
  ,
  rules: {
    oldPassword: [
        { required: true, message: '请输入旧密码', trigger: 'blur' },
      {validator: validatePass1, trigger: 'blur'}
    ],
    password: [
      { required: true, message: '请输入新密码', trigger: 'blur' },
      { min: 6, max: 32, message: '长度在 6 到 32个字符', trigger: 'blur' }
    ],
    confirmPassword: [
      { required: true, message: '请再次输入新密码', trigger: 'blur' },
      { validator: validatePass2, trigger: 'blur' }
    ]
  }
})
</script>

到此这篇关于vue + element-plus自定义表单验证(修改密码业务)的文章就介绍到这了,更多相关vue element-plus表单验证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue前端开发之实现交错过渡动画效果

    Vue前端开发之实现交错过渡动画效果

    这篇文章主要为大家详细介绍了如何通过Vue实现交错过渡动画效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-11-11
  • 基于Vue2实现印章徽章组件

    基于Vue2实现印章徽章组件

    这篇文章主要介绍了如何基于vue2实现简单的印章徽章控件,文中通过示例代码讲解详细,具有一定的学习价值,需要的朋友们下面就跟随小编来一起学习学习吧
    2023-10-10
  • vue之el-upload使用FormData多文件同时上传问题

    vue之el-upload使用FormData多文件同时上传问题

    这篇文章主要介绍了vue之el-upload使用FormData多文件同时上传问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Vue宝典之this.$refs属性的使用

    Vue宝典之this.$refs属性的使用

    Vue.js中的refs属性是一个非常有用的特性,它允许我们在组件中操作 DOM 元素和组件实例,本文来介绍一下Vue宝典之this.$refs属性的使用,感兴趣的可以了解一下
    2023-12-12
  • 解决微信浏览器缓存站点入口文件(IIS部署Vue项目)

    解决微信浏览器缓存站点入口文件(IIS部署Vue项目)

    这篇文章主要介绍了解决微信浏览器缓存站点入口文件(IIS部署Vue项目),本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • Vue配置marked链接添加target=

    Vue配置marked链接添加target="_blank"的方法

    这篇文章主要介绍了Vue配置marked链接添加target="_blank"的方法,文中给大家提到了vue实现类似target="_blank"打开新窗口的代码,感兴趣的朋友参考下吧
    2019-07-07
  • 基于Vue2实现简易的省市区县三级联动组件效果

    基于Vue2实现简易的省市区县三级联动组件效果

    这是一个基于Vue2的简易省市区县三级联动组件,可以控制只显示省级或只显示省市两级,可设置默认值等。提供原始省市县代码和名称数据,适用于各种有关城市区县的应用。需要的朋友可以参考下
    2018-11-11
  • vue中字典的使用

    vue中字典的使用

    这篇文章主要介绍了vue中字典的使用,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-12-12
  • 使用electron打包Vue前端项目的详细流程

    使用electron打包Vue前端项目的详细流程

    这篇文章主要介绍了使用electron打包Vue前端项目的详细流程,文中通过图文结合的方式给大家介绍的非常详细,对大家学习electron打包Vue有一定的帮助,需要的朋友可以参考下
    2024-04-04
  • Vue3 KeepAlive实现原理解析

    Vue3 KeepAlive实现原理解析

    KeepAlive 是一个内置组件,那封装一个组件对于大家来说应该不会有太大的困难,它的核心逻辑在于它的 render 函数,它用 map 去记录要缓存的组件,就是 [key,vnode] 的形式,这篇文章主要介绍了Vue3 KeepAlive实现原理,需要的朋友可以参考下
    2022-09-09

最新评论