vue2使用elform的rules校验的示例详解

 更新时间:2025年07月04日 09:27:01   作者:攻城狮-申  
这篇文章主要介绍了vue2使用elform的rules校验的示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

在使用vue2开发项目的时候使用element组件的el-form大多数情况都需要用到必填项校验
举个栗子:

<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
  <el-form-item label="活动名称" prop="name">
    <el-input v-model="ruleForm.name"></el-input>
  </el-form-item>
  <el-form-item label="活动区域" prop="region">
    <el-select v-model="ruleForm.region" placeholder="请选择活动区域">
      <el-option label="区域一" value="shanghai"></el-option>
      <el-option label="区域二" value="beijing"></el-option>
    </el-select>
  </el-form-item>
  <el-form-item>
    <el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button>
    <el-button @click="resetForm('ruleForm')">重置</el-button>
  </el-form-item>
</el-form>
<script>
  export default {
    data() {
      return {
        ruleForm: {
          name: '',
          region: '',
        },
        rules: {
          name: [
            { required: true, message: '请输入活动名称', trigger: 'blur' },
            { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
          ],
          region: [
            { required: true, message: '请选择活动区域', trigger: 'change' }
          ],
        }
      };
    },
    methods: {
      submitForm(ruleForm) {
        this.$refs['ruleForm'].validate((valid) => {
          if (valid) {
            alert('submit!');
          } else {
            console.log('error submit!!');
            return false;
          }
        });
      },
      resetForm(ruleForm) {
        this.$refs[ruleForm].resetFields();
      }
    }
  }
</script>

这里我们的表单里有‘活动名称(输入框)’和‘活动区域(下拉框)’两个选项,我们在<el-form>这里写了

:rules="rules"

这就代表我们这个el-form表单的校验是根据rules来的,而在下面<el-form-item>里我们写了'prop="xxx"',这里的属性为rules里需要校验的字段名,也就是data里定义的

rules: {
          name: [
            { required: true, message: '请输入活动名称', trigger: 'blur' },
            { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
          ],
          region: [
            { required: true, message: '请选择活动区域', trigger: 'change' }
          ],
        }

*这里需要注意的是我们prop里的字段和rules里的字段名一定要对应上,这样el-form表单的校验才会生效

然后我们在点击确定的时候调方法进行校验即可

this.$refs['ruleForm'].validate((valid) => {
          if (valid) {
            alert('submit!');
          } else {
            console.log('error submit!!');
            return false;
          }
        });

这里的[ruleForm]要跟上面el-form表单的ref的命名保持一致

更新:

如果遇到需要动态加校验
我们只需要在el-form-item这里加上

:rules="定义的变量 ? rules.name : []"

像这样

  <el-form-item label="活动名称" prop="name"
    :rules="定义的变量 ? rules.name: []">
    <el-input v-model="ruleForm.name"></el-input>
  </el-form-item>

这个定义的变量是用来动态判断是否需要加校验的,这个值你只需要放在你需要判断是否需要加校验的地方就行了

*这里有个点需要注意,单独加的校验有可能会在你输入/选择选项之后还是提示校验未通过

这个时候我们需要在输入框/下拉框的change事件里再单独执行一下校验就可以了,比如像这样:

change方法名() {
            this.$refs.ruleForm.validateField('name'); // 需要判断的那个选项的prop,要对应rules里定义的值
        },

这样就实现了对一个选项动态加判断校验

附加element的官网地址:Element - The world's most popular Vue UI framework

到此这篇关于关于vue2使用elform的rules校验的文章就介绍到这了,更多相关vue2 elform rules校验内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue 3.0x中的Suspense和异步组件详解

    Vue 3.0x中的Suspense和异步组件详解

    这篇文章主要介绍了Vue 3.0x中的Suspense和异步组件,我们将讨论新的defineAsyncComponent函数,以及如何利用Suspense组件来更好地处理异步组件的加载和显示,需要的朋友可以参考下
    2023-08-08
  • vue3中使用print-js组件实现打印操作步骤

    vue3中使用print-js组件实现打印操作步骤

    文章介绍了在Vue 3中使用print-js组件实现打印操作的步骤,包括安装依赖、创建打印组件和处理打印预览界面,文章还提到打印预览界面的样式调整对打印效果的影响,并展示了HTML展示和打印预览效果,最后,文章鼓励读者继续浏览相关文章并支持脚本之家
    2025-02-02
  • vue3.0 加载json的方法(非ajax)

    vue3.0 加载json的方法(非ajax)

    这篇文章主要介绍了vue3.0 加载json的方法(非ajax),帮助大家更好的理解和学习vue,感兴趣的朋友可以了解下
    2020-10-10
  • Vuex中mutations与actions的区别详解

    Vuex中mutations与actions的区别详解

    下面小编就为大家分享一篇Vuex中mutations与actions的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • 详解用vue.js和laravel实现微信授权登陆

    详解用vue.js和laravel实现微信授权登陆

    本篇文章主要介绍了详解用vue.js和laravel实现微信授权登陆,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • vue与axios上传视频并显示上传进度情况

    vue与axios上传视频并显示上传进度情况

    本文讲述了项目中实现上传视频并显示上传进度的功能,首先使用axios库进行单文件引入,未进行封装,通过element组件库实现选择文件上传,并打印选择文件的信息,上传完成后,可以在展示区域显示上传的视频,鼠标移入播放区域时会有相应的效果
    2026-02-02
  • vue2从数据变化到视图变化之nextTick使用详解

    vue2从数据变化到视图变化之nextTick使用详解

    这篇文章主要为大家介绍了vue2从数据变化到视图变化之nextTick使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Vue3引入SVG图标的流程步骤

    Vue3引入SVG图标的流程步骤

    我们在开发 Vue 项目的时候会使用一些前端组件库,例如 Element、Ant Design 等,这些组件库虽然方便,但是也有一些缺点,比如内置的图标太少,例如我们开发医疗、财务、工程等一些前端项目,内置的图标不能满足我们的需求,所以我们常常在Vue项目中引入SVG图标
    2024-09-09
  • 源码分析Vue.js的监听实现教程

    源码分析Vue.js的监听实现教程

    这篇文章主要通过源码分析介绍了Vue.js的监听实现,文中通过示例代码介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-04-04
  • Vue.js计算机属性computed和methods方法详解

    Vue.js计算机属性computed和methods方法详解

    这篇文章主要为大家详细介绍了Vue.js计算机属性computed和methods方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10

最新评论