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

下面我将为您介绍如何使用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日

相关文章

  • vuex 中辅助函数mapGetters的基本用法详解

    vuex 中辅助函数 mapGetters 的基本用法详解 简介 在 Vuex 中, state 存储着应用中的单一状态树。可以通过 store.state 来获取状态树中的属性。 但是,在有一些情况下,我们需要从 state 中派生一些状态,例如,过滤一些数据或者对数据进行计算,这时可以使用 Getter。Vuex 可以通过 Getter 快速派生出一些状…

    Vue 2023年5月28日
    00
  • 微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)

    微信小程序MUI侧滑导航菜单示例 微信小程序中,实现侧滑导航菜单是一个常见的需求。常见的导航菜单可以分为三种:弹出式(Popup)、覆盖式(Overlay)和抽屉式(Drawer)。对于简单的需求,我们可以使用MUI框架中提供的侧滑组件来实现。下面我们详细介绍如何使用MUI实现弹出式的导航菜单。 使用MUI实现侧滑导航菜单 首先需要在小程序的app.json…

    Vue 2023年5月27日
    00
  • JS实现把鼠标放到链接上出现滚动文字的方法

    实现在鼠标放置在链接上时出现滚动文字的效果,可以使用JavaScript中的DOM事件和CSS的样式设置。 步骤1:编写HTML页面代码 首先,在HTML页面中创建一个链接元素,并设置该元素的class为“link”。 <a href="#" class="link">Roll over me</a&…

    Vue 2023年5月28日
    00
  • vue-cli创建项目及项目结构解析

    下面是关于“vue-cli创建项目及项目结构解析”的详细攻略: 1. vue-cli是什么 Vue-cli是Vue.js官方提供的一款构建工具,通过命令行式的交互,可以帮助我们快速搭建一个Vue.js项目的文件结构和工程化基础。 Vue-cli提供了默认的模板,也支持自定义模板。同时,也预设了以下这些特性: 支持ES6语法,也可使用TypeScript等其他…

    Vue 2023年5月27日
    00
  • 基于vue cli重构多页面脚手架过程详解

    下面我将为你详细讲解“基于vue-cli重构多页面脚手架过程详解”的完整攻略。 一、背景和意义 在日常开发中,使用多页面开发的情况比较常见,但是现有的脚手架不一定完全支持多页面开发。因此,我们需要对现有的多页面脚手架进行重构,以适应开发需求。本攻略就是基于Vue CLI对多页面脚手架进行重构的具体过程。 二、多页面脚手架原理 多页面脚手架就是将每个页面都单独…

    Vue 2023年5月28日
    00
  • Vue3 computed初始化获取设置值实现示例

    首先,让我们了解Vue3中computed的使用方式。 在Vue3中,computed不再是选项,它变成了函数。 计算属性的本质仍然是基于依赖项进行缓存的值,但现在您必须显式地自定义getter和setter函数。 创建Computed属性 要创建计算属性,请将一个函数传递给computed()函数。该函数被定义为getter函数,在计算属性的依赖项发生更改…

    Vue 2023年5月28日
    00
  • Vue.js实现列表清单的操作方法

    针对”Vue.js实现列表清单的操作方法”,我会提出以下攻略步骤并提供两个相关的代码示例: 一、 定义列表项组件: 使用Vue.js,我们可以定义一个组件,用于渲染列表中的单个项。组件应该有两个props,一个用于接收数据数组,一个用于接收点击事件的回调函数,用于处理单击事件。该组件的代码示例如下: <template> <li v-for…

    Vue 2023年5月27日
    00
  • 尤大大新活petite-vue的实现

    首先,需要说明的是,Petite Vue是Vue的一个迷你版本,它依赖Vue 3,并且只有5KB的大小。它是为了在代码质量和性能之间找到一个理想的平衡点,以便开发者可以轻松编写高质量的代码并快速创建精美的交互效果。 Petite Vue使用与Vue 3相同的选项API,但是与Vue相比,它有一些不同之处,例如没有Virtual DOM和响应式系统的支持。在本…

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