详解element-ui 表单校验 Rules 配置 常用黑科技

详解element-ui 表单校验 Rules 配置 常用黑科技

在Element-UI表单组件中,我们可以很方便地使用校验规则来验证用户输入的数据,以保证数据的合法性。下面我们将详细讲解如何在Element-UI表单组件中使用校验规则。

绑定校验规则

我们可以通过设置rules属性来绑定校验规则。例如下面的代码,绑定了一个名为name的校验规则:

<el-form ref="form" :model="form">
  <el-form-item label="用户名" prop="name">
    <el-input v-model="form.name"></el-input>
  </el-form-item>
</el-form>
data() {
  return {
    form: {
      name: ''
    },
    rules: {
      name: [
        { required: true, message: '请输入用户名', trigger: 'blur' },
        { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
      ]
    }
  }
}

rules中,我们定义了一个名为name的校验规则,包含了两条校验规则。required表示输入不能为空,minmax表示输入长度在指定范围内。message表示错误提示信息,trigger表示触发校验的事件。

表单的校验方法

要对表单进行校验,我们需要使用validate方法。例如下面的代码,在点击提交按钮时,调用了validate方法对表单进行校验:

<el-form ref="form" :model="form">
  <!-- ... -->
  <el-form-item>
    <el-button type="primary" @click="submitForm">提交</el-button>
  </el-form-item>
</el-form>
methods: {
  submitForm() {
    this.$refs.form.validate((valid) => {
      if (valid) {
        // 校验成功后的操作
      } else {
        // 校验失败后的操作
      }
    });
  }
}

validate方法中,我们传入了一个回调函数,并在该函数中根据校验结果做出相应的操作。

示例1:自定义校验规则

在前面的示例中,我们使用了Element-UI提供的校验规则。但是有些时候,我们可能需要自定义一些校验规则。例如下面的代码,自定义了一个名为gender的校验规则:

<el-form ref="form" :model="form">
  <el-form-item label="称呼" prop="title">
    <el-input v-model="form.title"></el-input>
  </el-form-item>
  <el-form-item label="性别" prop="gender">
    <el-radio-group v-model="form.gender">
      <el-radio :label="1">男</el-radio>
      <el-radio :label="2">女</el-radio>
    </el-radio-group>
  </el-form-item>
  <el-form-item>
    <el-button type="primary" @click="submitForm">提交</el-button>
  </el-form-item>
</el-form>
data() {
  return {
    form: {
      title: '',
      gender: '',
    },
    rules: {
      title: [
        { required: true, message: '请输入称呼', trigger: 'blur' }
      ],
      gender: [
        { validator: this.checkGender, trigger: 'change' }
      ]
    }
  }
},
methods: {
  checkGender(rule, value, callback) {
    if (value === 1 || value === 2) {
      callback();
    } else {
      callback(new Error('请选择性别'));
    }
  }
}

rules中,我们定义了一个名为gender的校验规则。与前面示例不同的是,这里的规则的validator属性设置为一个函数checkGender,表示使用自定义的校验函数。当checkGender函数返回一个错误时,表示校验失败。

示例2:根据其他字段动态设置校验规则

有时候我们需要根据用户的输入动态地设置校验规则。例如下面的代码,根据用户选择的爱好数量,动态地设置校验规则:

<el-form ref="form" :model="form">
  <el-form-item label="爱好">
    <el-checkbox-group v-model="form.hobbies">
      <el-checkbox :label="1">篮球</el-checkbox>
      <el-checkbox :label="2">足球</el-checkbox>
      <el-checkbox :label="3">羽毛球</el-checkbox>
    </el-checkbox-group>
  </el-form-item>
  <el-form-item label="自我介绍">
    <el-input v-model="form.introduction"></el-input>
  </el-form-item>
  <el-form-item>
    <el-button type="primary" @click="submitForm">提交</el-button>
  </el-form-item>
</el-form>
data() {
  return {
    form: {
      hobbies: [],
      introduction: '',
    },
    rules: {
      introduction: [
        { required: true, message: '请输入自我介绍', trigger: 'blur' }
      ]
    }
  }
},
watch: {
  'form.hobbies'(newVal) {
    const len = newVal.length;
    const maxLen = 3;
    const rules = [
      { required: true, message: '请选择爱好', trigger: 'change' }
    ];
    if (len > 0) {
      rules.push({ 
        validator: (rule, value, callback) => {
          const valLen = value.length;
          if (valLen <= 100) {
            callback();
          } else {
            callback(new Error('自我介绍不能超过100个字符'));
          }
        },
        trigger: 'blur'
      });
    }
    if (len >= maxLen) {
      rules.push({ message: '最多只能选择' + maxLen + '个爱好', trigger: 'change' });
    }
    this.$set(this.rules, 'introduction', rules);
  }
}

rules中,我们定义了一个名为introduction的校验规则,初始值为一个必填校验规则。我们使用了watch函数来实时监听用户选择的爱好,根据选择的爱好数量来动态地设置校验规则。例如当选择了至少一个爱好时,将添加一个校验自我介绍长度不能超过100个字符的校验规则,当选择的爱好数量达到3个时,将添加一个提示用户最多只能选择3个爱好的校验规则。使用$set方法来更新rules属性的值,以确保动态添加的校验规则能够生效。

以上就是关于Element-UI表单校验规则的详解,希望对大家有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解element-ui 表单校验 Rules 配置 常用黑科技 - Python技术站

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

相关文章

  • JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结

    下面我将详细讲解关于“JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结”的攻略以及示例说明。 标题 一、offset、scroll、client的应用说明 1. offset offset是获取元素相对于其offsetParent的位置信息,包括元素的宽高、距离上下左右的距离。使用offsetLeft和offsetTop属…

    JavaScript 2023年6月11日
    00
  • JavaScript原型Prototype详情

    JavaScript 中的一个重要概念是原型(Prototype),每个对象都有一个隐藏的内部属性 proto,这个属性链接到它的所属构造函数(或者是创建它的对象)的 prototype 属性。在 JavaScript 中,所有的函数 (Function) 都有一个特殊的属性 prototype,它是一个对象 (Object),该对象包含所有通过构造函数创建…

    JavaScript 2023年5月28日
    00
  • 关于JavaScript回调函数的深入理解

    关于JavaScript回调函数的深入理解 什么是回调函数 回调函数是一种在JavaScript中常见的编程模式。它是一个函数,可以作为参数传递给其他函数,以便在其他函数完成之后执行。虽然它非常实用,但许多初学者仍然对回调函数感到困惑。 当我们在使用 JavaScript 编写异步代码时,比如在进行 Ajax 请求时,我们不能直接通过在代码中写入“等待服务器…

    JavaScript 2023年6月10日
    00
  • JavaScript常用基础知识强化学习

    JavaScript常用基础知识强化学习攻略 1. 前置知识 在进行JavaScript常用基础知识的强化学习之前,需要掌握以下前置知识: HTML和CSS基础知识 程序基本结构(语句、循环、条件判断等) 数据类型、变量、运算符 函数、对象、数组 2. 基础知识强化学习方法 2.1 阅读MDN文档 MDN提供了JavaScript的完整文档,包含了语言核心、…

    JavaScript 2023年6月10日
    00
  • JavaScript 有用的代码片段和 trick

    当提到 JavaScript 有用的代码片段和 trick 时,我们通常指的是 JavaScript 开发者经常用到的一些技巧和代码片段。这些技巧和代码片段可以帮助我们更好地优化我们的代码并增强我们的开发能力。以下是一些实用的技巧和代码片段: 1. JavaScript 中的链式调用 链式调用是一种使代码更加紧凑、易于读取的技巧。它允许我们在一个方法的输出上…

    JavaScript 2023年6月10日
    00
  • Javascript数组Array方法解读

    接下来我将为您详细讲解 “Javascript数组Array方法解读” 的完整攻略。 1. 概述 在 Javascript 中,数组(Array)是一个非常常用的数据结构,可以用来存储一系列的值。同时,数组提供了丰富的方法,可以对数组进行各种操作,例如添加、删除、筛选、排序等。 在本文中,我将为您详细解读 Javascript 数组的常用方法,帮助您更好地掌…

    JavaScript 2023年5月27日
    00
  • iPad Air、iPad Air 2、iPhone 6 Plus跑分对比

    iPad Air、iPad Air 2、iPhone 6 Plus跑分对比 简介 本文将介绍iPad Air、iPad Air 2、iPhone 6 Plus三款设备的跑分对比,并且分析不同设备之间的性能差异。 测试环境 本文对三款设备的跑分数据均采用了AnTuTu Benchmark 7.1.0测试软件,并在相同的测试环境下进行测试,确保测试结果的可靠性。…

    JavaScript 2023年5月28日
    00
  • $()JS小技巧

    $()JS小技巧 在前端开发中,我们经常需要对DOM元素进行操作,而jQuery库可以帮助我们更方便地实现这些操作。其中一个最常用的方法是$(),它可以获取DOM元素并对其进行操作。 基本语法 $()是jQuery的一种基本语法,它可以通过选择器来选取HTML元素,并返回一个jQuery对象。基本语法如下: $(selector).action() 其中的s…

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