通过Element实现表单验证

Element是一个基于Vue.js 2.0的桌面端组件库。它提供了丰富的组件,包括表单组件。本文将从多个方面阐述如何通过Element实现表单验证。

一、为表单添加验证规则

通过在表单元素上绑定rules属性,可以为表单添加验证规则。

  
    <el-form-item label="用户名" prop="name">
      <el-input v-model="form.name" name="name" :rules="[ { required: true, message: '请输入用户名', trigger: 'blur' }]" />
    </el-form-item>
  

上述代码中prop属性的值为表单元素的字段名,rules属性的值为对该字段的验证规则。在这个例子中,必填的验证规则为required,提示信息为“请输入用户名”,验证触发方式为blur即失去焦点触发。还可以设置其它的验证规则,如最小长度、最大长度、正则表达式等等。

二、动态修改验证规则

Element提供了一组hook属性,可以让我们在验证过程中进行一些动态的修改行为。这些hook分别是validator、validate、validateFailed。

validator:在表单值发生变化时触发,可以动态设置表单的验证规则。

  
    <el-form-item label="手机号" prop="tel">
      <el-input v-model="form.tel" name="tel" :rules="[ { required: true, message: '请输入手机号', trigger: 'blur' }]" @blur="checkPhone" />
    </el-form-item>
  
  
    methods: {
      checkPhone() {
        if(/^(13[0-9]|14[5-9]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[89])\d{8}$/.test(this.form.tel)) {
          this.$refs.form.validateField('tel');
        } else {
          this.$refs.form.validateField('tel', '手机号格式不正确');
        }
      }
    }
  

在这个例子中,我们为手机号添加了一个额外的验证方法checkPhone。如果手机号不符合格式,我们可以通过调用validateField方法动态设置一个错误信息,这样就可以避免弹出一个不必要的提示框。

三、自定义验证规则

如果Element提供的验证规则不能够满足我们的需求,我们可以通过自定义验证规则来满足我们的需求。

  
    Vue.component('el-phone', {
      template: '<el-input v-model="value" :placeholder="placeholder" :readonly="readonly" :disabled="disabled" :maxlength="maxlength" @change="handleChange" />',
      props: {
        value: { type: String, default: '' },
        placeholder: { type: String, default: '请输入电话号码' },
        readonly: { type: Boolean, default: false },
        disabled: { type: Boolean, default: false },
        maxlength: { type: Number, default: 11 },
      },
      methods: {
        handleChange(e) {
          const value = e.target.value;
          if(!/^(13[0-9]|14[5-9]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[89])\d{8}$/.test(value)) {
            this.$emit('input', '');
            this.$emit('error', '请输入有效的手机号码');
          } else {
            this.$emit('input', value);
            this.$emit('success', value);
          }
        }
      }
    });
  

在这个例子中,我们新增了一个名为el-phone的自定义组件。在handleChange方法里,我们使用了和前面介绍的动态验证相同的方式,动态设置验证结果。要使用这个组件,只需要在表单中绑定value属性即可。

四、错误提示

Element提供了一套强大的错误提示机制,可以让我们在表单出错时及时发现问题,并提示出错的原因。

  
    <el-form :model="form" :rules="rules" ref="form">
      <el-form-item label="手机号码" prop="phone">
        <el-input v-model="form.phone" name="phone" placeholder="请输入手机号码" @blur="checkPhone" />
      </el-form-item>
      <el-form-item label="验证码" prop="code">
        <el-input v-model="form.code" name="code" placeholder="请输入验证码" />
      </el-form-item>
      <el-form-item>
        <el-button type="primary" :loading="submitting" @click="submit">提交</el-button>
      </el-form-item>
      <div slot="error">{{$refs.form?.$el?.querySelector?.('.el-form-item__error')?.textContent}}</div>
    </el-form>
  

在这个例子中,我们可以看到一个名为error的slot。在普通情况下,它是不会显示的,只有在表单验证不通过时,我们才会在这里显示错误信息。使用Element提供的querySelector方法,可以迅速地找到错误提示框。

五、图形验证码验证

图形验证码是一种常见的用户验证方式,也是表单验证方案中常见的一种方案。可以通过Element提供的el-image组件快速实现图形验证码的验证功能。

  
    <el-form-item label="图形验证码" prop="imageCode">
      <el-input v-model="form.imageCode" name="imageCode" placeholder="请输入验证码" />
      <el-image src="/api/randCode.php" style="width: 100px;height: 40px;margin-left: 1rem;" @click.native="changeRandCode" :key="randCode" />
    </el-form-item>
  

在这个例子中,我们可以看到一组图形验证码的实现方式。在点击验证码时,我们会刷新一个新的验证码,从而完成验证的过程。

六、总结

通过本文的介绍,我们可以看到Element是一个非常棒的表单组件库,为我们提供了无数的组件和接口,可以让我们完成各种各样的表单验证任务。希望本文对读者有所帮助,也希望读者们在开发中能够加以应用。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/230704.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-10 18:18
下一篇 2024-12-10 18:18

相关推荐

  • Java表单提交方式

    Java表单提交有两种方式,分别是get和post。下面我们将从以下几个方面详细阐述这两种方式。 一、get方式 1、什么是get方式 在get方式下,表单的数据会以查询字符串的形…

    编程 2025-04-27
  • 全方位解析fomer——无需编写HTML表单的前端库

    一、什么是fomer? fomer是一个基于React的前端库,可以方便地创建表单。使用它,你不需要编写HTML表单,只需要使用JavaScript以及一些CSS类名即可创建美丽的…

    编程 2025-04-25
  • element下拉框设置默认值为中心

    一、确定默认值 在设置下拉框的默认值之前,我们需要先确定默认值是什么。一般来说,下拉框的默认值要么是第一个选项,要么是用户最近一次选择的选项。如果是第一个选项,则不需要进行任何操作…

    编程 2025-04-24
  • 使用Element上传限制文件类型的方法

    一、设置限制文件类型 通过Element的el-upload组件设置限制文件类型,只有特定的文件才能被上传。 <el-upload :auto-upload=”false” …

    编程 2025-04-23
  • 深入浅出:volidate表单验证库详解

    表单验证是Web开发中很重要的一部分,不仅能帮助我们轻松验证所需要的输入数据、保证数据的完整性和一致性,还能够给用户带来更好的体验。而volidate则是一款方便易用的表单验证库,…

    编程 2025-04-23
  • Vue表单提交实践与总结

    一、vue提交表单没反应 1、检查表单是否绑定到正确的数据 <form v-on:submit.prevent=”submitForm”> <!– … –…

    编程 2025-04-23
  • 表单元素详解

    表单元素是 HTML 中非常重要的一部分,它们用于收集用户的输入数据并将其发送到服务器进行处理。下面我们从多个方面来详细地阐述表单元素的相关知识。 一、表单的基础结构 首先,我们需…

    编程 2025-04-13
  • elementform: 表单开发的神器

    一、elementform 简介 elementform 是一个 Vue.js 表单组件,它是 Element UI 中的一个核心组件。它为表单处理各种样板工作提供了高效的解决方案…

    编程 2025-02-24
  • Element:前端开发的终极利器

    近年来,随着互联网技术的飞速发展,前端开发成为了互联网行业中不可或缺的一环。而 Element 作为目前最有名的 Vue UI 组件库,让前端开发工作变得更加高效和轻松。本文将从多…

    编程 2025-02-15
  • JS form表单提交实现全解析

    一、获取表单元素 在JS中,获取表单元素可以使用querySelector方法或getElementById方法,这里我们演示使用querySelector方法获取表单元素: &l…

    编程 2025-01-20

发表回复

登录后才能评论