详解element-ui中form验证杂记

下面我将详细讲解关于element-ui中form验证的攻略。

一、前言

在前后端分离的开发中,前端对数据的验证尤为重要。element-ui提供了许多常用的表单验证功能,本文将详解其使用方法。

二、需求分析

本次验证需求如下:

  1. 用户名:非空,长度在3~20个字符之间
  2. 密码:非空,6~18个字符
  3. 确认密码:必须与密码保持一致

三、实现方法

1. 使用element-ui的Rules规则

在element-ui中,通过给el-form-item组件添加prop属性,即可将该表单项加入校验规则队列中。接下来,我们需要使用el-form组件的rules属性来声明具体的校验规则。

以下是代码示例:

<el-form ref="myform" :model="form" :rules="rules">
  <el-form-item label="用户名" prop="username">
    <el-input v-model="form.username"></el-input>
  </el-form-item>
  <el-form-item label="密码" prop="password">
    <el-input type="password" v-model="form.password"></el-input>
  </el-form-item>
  <el-form-item label="确认密码" prop="confirm">
    <el-input type="password" v-model="form.confirm"></el-input>
  </el-form-item>
  <el-button @click="handleSubmit">提交</el-button>
</el-form>

<script>
export default {
  data() {
    return {
      form: {
        username: '',
        password: '',
        confirm: '',
      },
      rules: {
        username: [
          { required: true, message: '请输入用户名', trigger: 'blur' },
          { min: 3, max: 20, message: '长度在3到20个字符', trigger: 'blur' }
        ],
        password: [
          { required: true, message: '请输入密码', trigger: 'blur' },
          { min: 6, max: 18, message: '长度在6到18个字符', trigger: 'blur' }
        ],
        confirm: [
          { required: true, message: '请再次输入密码', trigger: 'blur' },
          { validator: this.checkPassword, trigger: 'blur' }
        ],
      },
    };
  },
  methods: {
    // 自定义校验规则
    checkPassword(rule, value, callback) {
      if (value === '') {
        callback(new Error('请再次输入密码'));
      } else if (value !== this.form.password) {
        callback(new Error('两次输入的密码不一致'));
      } else {
        callback();
      }
    },
    // 提交表单
    handleSubmit() {
      this.$refs.myform.validate(valid => {
        if (valid) {
          this.$message.success('验证通过,提交成功!');
        } else {
          this.$message.error('表单验证失败,请检查输入是否正确!');
        }
      });
    },
  },
};
</script>

2. 自定义校验规则

有时候,我们需要自定义校验规则。这时,可以使用el-form中的规则验证器,示例如下:

<el-form ref="form" :model="formData" :rules="rules">
  <el-form-item label="测试1" prop="test1">
    <el-input v-model="formData.test1"></el-input>
  </el-form-item>
  <el-form-item label="测试2" prop="test2">
    <el-input v-model="formData.test2"></el-input>
  </el-form-item>
  <el-form-item>
    <el-button type="primary" @click="validateForm">提交</el-button>
  </el-form-item>
</el-form>

<script>
export default {
  data() {
    return {
      formData: {
        test1: '',
        test2: '',
      },
      rules: {
        test1: [
          { required: true, message: '请输入测试1', trigger: 'blur' },
        ],
        test2: [
          { validator: this.validateTest2, trigger: 'blur' },
        ]
      },
    };
  },
  methods: {
    // 自定义校验规则函数
    validateTest2(rule, value, callback) {
      if (value === '') {
        callback(new Error('测试2不能为空'));
      } else {
        callback();
      }
    },
    // 提交表单
    validateForm() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          this.$message.success('表单验证通过!');
        } else {
          this.$message.error('表单验证失败,请检查输入是否正确!');
        }
      });
    },
  },
};
</script>

四、总结

本文详细讲解了如何使用element-ui进行表单验证,包括使用内置的校验规则和自定义校验规则。希望读者能够从中受益,更好地开发自己的网站。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解element-ui中form验证杂记 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 一个简单横向javascript日期控件

    下面我将详细讲解如何创建一个简单横向JavaScript日期控件的攻略。这个控件可以轻松地让用户选择日期并显示在网页上。 步骤一:HTML结构 首先,在HTML文件中创建一个div容器,用来包含控件: <div id="datePicker"></div> 步骤二:CSS样式 为了让控件在页面上显示得好看,我们需要…

    JavaScript 2023年5月27日
    00
  • vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)

    vue+axios 前端实现登录拦截的两种方式 在使用Vue开发前端项目时,通常会使用axios进行后端接口调用,而在实现用户登录后,我们通常需要对未登录的用户进行拦截,以保护系统的安全性。接下来将讲解如何使用Vue+axios实现前端登录拦截的两种方式:路由拦截和http拦截。 方式一:路由拦截 步骤一:创建全局路由守卫 在Vue项目主入口文件中,通过Vu…

    JavaScript 2023年6月11日
    00
  • 使用mixins实现elementUI表单全局验证的解决方法

    使用mixins实现elementUI表单全局验证的解决方法 什么是mixins? 在Vue中,mixins是一种可复用功能的方式,其本质是一个对象,在Vue组件中通过mixins属性将其引入,可以让组件具备该对象的属性和方法。 elementUI表单全局验证的需求 在使用elementUI的表单组件时,我们往往需要对表单进行全局验证,例如输入框不能为空、手…

    JavaScript 2023年6月10日
    00
  • Document:getElementsByName()使用方法及示例

    当你需要获取带有相同名称的元素时(例如 input 标签),你可以使用 Document 对象的 getElementsByName() 方法。 语法 document.getElementsByName(name) 参数 name:元素的名称,字符串类型。 返回值 返回一个包含指定名称的所有元素的 NodeList(节点列表)。 示例一:获取单选按钮的状态…

    JavaScript 2023年6月10日
    00
  • JavaScript函数参数的传递方式详解

    下面是JavaScript函数参数的传递方式的详细讲解: 函数的参数传递方式 在JavaScript中,函数的参数可以通过以下三种方式进行传递: 值传递 (call by value) 传递的是一个值的副本,函数内部对传递进来的值进行修改不会影响原来的值。例如: function foo(num) { num = 5; console.log(num); /…

    JavaScript 2023年5月27日
    00
  • 深入理解JavaScript的事件执行机制

    深入理解JavaScript的事件执行机制 什么是JavaScript事件? JavaScript事件是指浏览器或网页中发生的特定动作,例如点击、输入、鼠标移动等等。当触发事件时,可以运行特定的代码来响应事件。 事件执行机制 JavaScript事件执行机制分为三个阶段: 事件捕获阶段:事件从文档根节点传递到目标元素之前的过程。 目标阶段:事件达到目标元素。…

    JavaScript 2023年5月28日
    00
  • javascript 函数及作用域总结介绍

    Javascript 函数及作用域总结介绍 Javascript 函数及作用域是 Javascript 学习中最核心和重要的部分之一,下面我们将深入学习并总结它们的基本知识。 函数(Function) 定义 在 Javascript 中,函数是一种数据类型,可以被执行。函数有两种方式定义,一种是函数声明方式,另一种是函数表达式方式。 函数声明方式 funct…

    JavaScript 2023年5月27日
    00
  • 在页面中引入js的两种方法(推荐)

    在页面中引入JavaScript脚本有两种主要的方法,分别是通过script标签嵌入JavaScript代码和通过外部文件引入JavaScript代码。 嵌入JavaScript代码 要嵌入JavaScript代码,我们可以使用<script>标签来完成,在<script>标签中写入JavaScript代码,将其嵌入HTML页面即可。…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部