Vue Element-ui表单校验规则实现

yizhihongxing

下面我将为您介绍如何使用Vue中的Element-ui表单校验规则。

1. 简介

在表单相关的开发中,输入框、文本框等输入控件的校验是必不可少的。Vue支持使用Element-ui提供的校验规则方法,可以轻松实现表单验证的效果。而Element-ui提供的校验规则包括以下几个方面:

  • required: 必填项校验
  • pattern: 模式匹配规则校验(正则校验)
  • range: 数值范围校验
  • min/max: 自定义数值最小值/最大值校验
  • email: 邮箱校验
  • url: url格式校验
  • tel: 手机号格式校验
  • date: 时间格式校验
  • method: Table组件相关规则
  • 其他自定义规则等等

2. 使用方法

2.1 基本使用

使用Element-ui表单校验功能的方法很简单,只需要在需要校验的表单控件上添加rules属性,并将校验规则写成一个数组即可。例如,以下是一个简单的示例:

<el-form :model="form" ref="form">
  <el-form-item label="名称" prop="name">
    <el-input v-model="form.name" placeholder="请输入名称"></el-input>
  </el-form-item>
  <el-form-item label="年龄" prop="age">
    <el-input v-model.number="form.age" placeholder="请输入年龄"></el-input>
  </el-form-item>
</el-form>

在上述示例中,我们设置了两个表单项,分别对应了输入框中的“名称”和“年龄”。而需要进行校验的表单项在el-form-item中定义了prop属性,该属性的值为表单项所对应的字段名。同时在el-input中,我们对于年龄输入框使用了修饰符.number,表示我们希望该输入框的值是一个数字类型。

接下来,我们只需要在el-form-item中通过rules属性定义校验规则即可。例如,对于“名称”这个输入框,我们设置了必填、最长为10个字符的校验规则,其代码如下:

<el-form :model="form" ref="form">
  <el-form-item label="名称" prop="name">
    <el-input v-model="form.name" placeholder="请输入名称"></el-input>
  </el-form-item>
  <el-form-item label="年龄" prop="age">
    <el-input v-model.number="form.age" placeholder="请输入年龄"></el-input>
  </el-form-item>
  <el-button type="primary" @click="submitForm">提交</el-button>
</el-form>

<script>
export default {
  data() {
    return {
      form: {
        name: '',
        age: null
      }
    }
  },
  methods: {
    submitForm() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          alert('校验通过');
        } else {
          alert('校验失败');
          return false;
        }
      });
    }
  }
  rules: {
    name: [
      { required: true, message: '请输入名称', trigger: 'blur' },
      { max: 10, message: '名称最长为10个字符', trigger: 'blur' }
    ]
  }
}
</script>

在以上代码中,我们为名称输入框添加了两个校验规则,第一个规则表示名称这个输入框是必填的,即required: true,同时定义了校验失败时的提示信息message和校验时机为“失去焦点时”的trigger。而第二个规则表示名称最多只能输入10个字符,即max: 10

在实际工作中,如果需要应用多个规则,只需要将其添加到数组中即可。例如,需要为年龄输入框定义必填和年龄范围规则,代码如下:

<el-form :model="form" ref="form">
  <el-form-item label="名称" prop="name">
    <el-input v-model="form.name" placeholder="请输入名称"></el-input>
  </el-form-item>
  <el-form-item label="年龄" prop="age">
    <el-input v-model.number="form.age" placeholder="请输入年龄"></el-input>
  </el-form-item>
  <el-button type="primary" @click="submitForm">提交</el-button>
</el-form>

<script>
export default {
  data() {
    return {
      form: {
        name: '',
        age: null
      }
    }
  },
  methods: {
    submitForm() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          alert('校验通过');
        } else {
          alert('校验失败');
          return false;
        }
      });
    }
  },
  rules: {
    name: [
      { required: true, message: '请输入名称', trigger: 'blur' },
      { max: 10, message: '名称最长为10个字符', trigger: 'blur' }
    ],
    age: [
      { required: true, message: '请输入年龄', trigger: 'blur' },
      { type: 'number', message: '年龄只能为数字', trigger: 'blur' },
      { min: 18, max: 100, message: '年龄必须在18岁到100岁之间', trigger: 'blur' }
    ]
  }
}
</script>

在以上示例中,我们为年龄输入框定义了三个校验规则,分别表示必填、数字类型和年龄范围限制。

2.2 自定义校验规则

在实际工作中,有时候需要自定义表单校验规则。例如,需要验证用户输入的手机号是否合法,我们可以通过自定义校验规则来实现。而具体的操作步骤如下:

  1. 在Vue组件中定义一个公共方法,用于手机号格式的正则校验,例如:
export default {
  data() {
    return {
      form: {
        mobile: ''
      }
    }
  },
  methods: {
    validateMobile(rule, value, callback) {
      const reg = /^[1][3,4,5,6,7,8,9][0-9]{9}$/;
      if (reg.test(value)) {
        callback();
      } else {
        callback(new Error('请输入正确的手机号'));
      }
    },
    submitForm() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          alert('校验通过');
        } else {
          alert('校验失败');
          return false;
        }
      });
    }
  },
  rules: {
    mobile: [
      { required: true, message: '请输入手机号', trigger: 'blur' },
      { validator: this.validateMobile, trigger: 'blur' }
    ]
  }
}

在以上代码中,我们定义了一个名为validateMobile的方法,该方法接受三个参数:校验规则、输入框的值和回调函数。我们可以通过写一个手机号格式的正则表达式来校验输入框中的手机号格式是否正确。如果该手机号格式正确,我们调用回调函数并将错误信息设置为null;否则我们通过new Error(message)将错误信息传递给回调函数。

  1. 在表单校验规则中使用自定义规则,例如:
<el-form :model="form" ref="form">
  <el-form-item label="手机号" prop="mobile">
    <el-input v-model="form.mobile" placeholder="请输入手机号"></el-input>
  </el-form-item>
  <el-button type="primary" @click="submitForm">提交</el-button>
</el-form>

<script>
export default {
  data() {
    return {
      form: {
        mobile: ''
      }
    }
  },
  methods: {
    validateMobile(rule, value, callback) {
      const reg = /^[1][3,4,5,6,7,8,9][0-9]{9}$/;
      if (reg.test(value)) {
        callback();
      } else {
        callback(new Error('请输入正确的手机号'));
      }
    },
    submitForm() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          alert('校验通过');
        } else {
          alert('校验失败');
          return false;
        }
      });
    }
  },
  rules: {
    mobile: [
      { required: true, message: '请输入手机号', trigger: 'blur' },
      { validator: this.validateMobile, trigger: 'blur' }
    ]
  }
}
</script>

在以上代码中,我们使用validator属性来引用自定义的规则方法——即引用我们在上面定义的那个validateMobile方法来校验手机号格式。

这样,我们就可以轻松实现自定义校验规则了。

结语

以上就是使用Vue Element-ui表单校验规则实现的完整攻略,您只需要按照以上方法配置即可轻松应用Element-ui的表单校验功能,使您的表单输入更加安全和规范。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue Element-ui表单校验规则实现 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • Vue中的局部组件介绍

    当我们在开发Vue应用程序时,我们通常需要将页面简化成多个模块化的组件。这个时候,我们可以使用Vue的局部组件来实现这个目的。Vue的局部组件是一种允许我们在单个Vue组件中注册私有的子组件的机制。在这个过程中,我们可以将一个Vue组件分解成多个小组件,并将这些组件放置在同一个父组件中,以更好地管理和重复使用这些组件。 如何在Vue中实现局部组件 在Vue中…

    Vue 2023年5月27日
    00
  • Vue导出Excel功能的全过程记录

    下面是详细讲解“Vue导出Excel功能的全过程记录”的完整攻略。 1. 背景说明 Excel是一个办公软件中常用的工具,它可以方便地进行表格数据的输入和编辑。在Web应用中,我们可能需要将表格数据以Excel格式导出,这就需要实现一个导出Excel的功能。Vue是一款流行的JavaScript框架,本文将介绍如何在Vue项目中实现导出Excel的功能。 2…

    Vue 2023年5月27日
    00
  • Bootstrap3 datetimepicker控件使用实例

    Bootstrap3 datetimepicker控件使用实例 介绍 datetimepicker控件是基于Bootstrap3的开源jQuery插件,用于日期和时间选择。它具有用户友好的界面,易于使用和高度可定制的特点。本文将详细介绍datetimepicker控件的使用方法和示例。 安装 要使用datetimepicker控件,首先需要引入相关的库文件:…

    Vue 2023年5月28日
    00
  • vue中如何利用js函数截取时间的年月日时分秒

    在Vue中,利用JavaScript函数截取时间的年月日时分秒,可以使用内置的JavaScript Date对象。下面是Vue中如何利用js函数截取时间的年月日时分秒的完整攻略: 步骤1:获取当前时间 let today = new Date(); // 获取当前时间 console.log(today); // 打印当前时间 我们使用Date对象获取当前日…

    Vue 2023年5月29日
    00
  • Vue的route-view子页面调用父页面的函数详解

    当我们在使用Vue的路由时,有些情况下我们需要在子页面中调用父页面中的函数,这种需求是非常常见的。本文将讲解如何在Vue中通过 this.$parent 和 $refs 这两种方法来实现子页面调用父页面函数的详解。 方法一:this.$parent this.$parent 可以获取到当前实例的父级,因此可以通过该属性来调用父级中的方法。 示例1:父子页面共…

    Vue 2023年5月28日
    00
  • 使用 Vue cli 3.0 构建自定义组件库的方法

    使用 Vue cli 3.0 构建自定义组件库的方法可以通过以下步骤实现: 1. 创建一个新的 Vue 项目 使用 Vue cli 3.0 创建一个新项目: vue create my-library 2. 配置组件库 在 “src” 目录下创建一个 “components” 目录,所有组件都将存放在这个目录中。为了确保组件可以在其他项目中使用,我们需要将这…

    Vue 2023年5月28日
    00
  • 细说Vue组件的服务器端渲染的过程

    Vue组件的服务器端渲染,是指在服务器端将Vue组件编译为HTML字符串,然后将其发送给客户端浏览器。该过程主要包含以下几个步骤: 配置服务器环境 首先需要配置服务器环境,以便在服务器端运行Vue组件。这包括安装Node.js和Vue Server Renderer等相关模块。另外,需要对服务器进行一些基本设置,如监听端口、创建路由和管理静态资源等。 创建V…

    Vue 2023年5月27日
    00
  • vue-cli3中vue.config.js配置教程详解

    下面就是对“vue-cli3中vue.config.js配置教程详解”的完整攻略。 使用vue-cli3创建Vue项目 首先,我们需要安装Vue的脚手架工具——vue-cli3,使用以下命令进行安装: npm install -g @vue/cli 安装完成后,我们可以使用以下命令来创建一个新的Vue项目: vue create my-project vue…

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