详解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日

相关文章

  • 基于JS实现01支付后的10秒倒计时

    要实现基于JS的10秒倒计时,可以采用以下步骤: 1.在HTML中创建倒计时显示元素 首先,在HTML中创建一个元素用于显示倒计时,例如: <div id="countdown">10</div> 这是一个div元素,给它一个id,方便在JS中获取并修改其内容。 2.利用JS实现倒计时功能 然后,在JS中获取倒计时…

    JavaScript 2023年6月11日
    00
  • 详解JavaScript UTC时间转换方法

    详解JavaScript UTC时间转换方法 在JavaScript中,我们通常使用的日期对象保存的是本地时间。但是,在跨时区使用的情况下,UTC时间经常会被使用。要将本地时间转换为UTC时间,或者将UTC时间转换为本地时间,可以使用JavaScript提供的函数来完成。下面介绍JavaScript UTC时间转换的方法。 1. new Date(Date.…

    JavaScript 2023年5月27日
    00
  • js基本ajax写法示例代码

    下面我将为您详细讲解“JS基本Ajax写法示例代码”的完整攻略。 什么是AJAX AJAX是Asynchronous JavaScript and XML的缩写,指的是通过JavaScript异步地向服务器发送请求,并通过DOM来更新页面,以实现无刷新的效果。 如何完成一个基本的AJAX请求 在介绍AJAX的编写之前,你需要了解一些关键字和常量: XMLHt…

    JavaScript 2023年6月11日
    00
  • 全面兼容的javascript时间格式化函数(比较实用)

    全面兼容的javascript时间格式化函数(比较实用) 1. 功能介绍 本文将介绍如何编写一个全面兼容的 JavaScript 时间格式化函数。该函数可以将时间格式化为指定的字符串,并且兼容 IE 6 及以上的浏览器。 2. 编写步骤 2.1 定义函数 首先,我们需要定义一个函数来进行格式化。该函数的参数为需要格式化的时间和格式化字符串,返回值为格式化后的…

    JavaScript 2023年5月27日
    00
  • JS异步执行结果获取的3种解决方式

    下面我为你详细讲解“JS异步执行结果获取的3种解决方式”的完整攻略。 什么是异步执行? 异步执行是指 JavaScript 引擎在执行代码时,遇到需要等待的任务时不会阻塞当前执行流程,而是将该任务挂起,通过异步调用机制继续执行后面的代码,等待该任务完成后再返回到前面被挂起的位置继续执行。 常见的异步任务包括:Ajax,定时器,事件回调函数等。 异步执行结果获…

    JavaScript 2023年5月28日
    00
  • 原生js实现旋转木马效果

    实现旋转木马效果,可以分为如下几个步骤: 初始布局 在HTML中创建一个容器元素,然后在其中添加多个子元素,这些子元素将组成我们的木马效果。为了充分体现木马效果,这些子元素需要位置排列形成一个环。 样式与动画 为容器元素以及子元素定义样式,使其在页面中呈现出我们想要的样式和动画效果。通过CSS3中的转换、动画控制元素的旋转、移动、透明度等效果。在这里,我们需…

    JavaScript 2023年6月11日
    00
  • JS中正则表达式要注意lastIndex属性

    JavaScript中的正则表达式是一种特殊的对象类型,用来匹配字符串中的模式。在正则表达式匹配时,需要注意到lastIndex属性。 lastIndex属性介绍 lastIndex是RegExp对象的一个属性,表示正则表达式匹配下一个字符的位置。当进行全局匹配时,每次匹配都是从上一次匹配完成后lastIndex处继续查找。当进行非全局匹配时,lastInd…

    JavaScript 2023年6月10日
    00
  • 一个非常强大完整的web表单验证程序Validator v1.05

    Validator v1.05 – 一个强大的web表单验证程序 Validator v1.05 是一个高效,灵活和功能强大的表单验证程序,可以帮助web开发人员轻松地验证使用者提交的表单输入。其主要特点包括: 简单易用:具有清晰的API和文档,易于配置和使用。 强大的验证能力:可以确保输入符合特定格式而且符合业务规则。 可扩展性:可以通过编写自定义插件来进…

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