vue element el-form 多级嵌套验证的实现示例

针对“vue element el-form 多级嵌套验证的实现示例”的完整攻略,我给您提供以下步骤:

步骤一:配置element-ui

首先需要在项目中引入Element-UI组件库,并按照文档要求进行全局和局部组件的注册,具体步骤可以参考官方文档:https://element.eleme.cn/#/zh-CN/component/installation

步骤二:准备你的表单数据

定义好表单需要验证的数据结构,这里给出一个例子:

formData: {
  name: '',
  age: '',
  job: {
    title: '',
    salary: ''
  }
}

这个数据结构包含三个属性,job属性也是一个对象,有两个属性。在满足某些条件时需要使用到这样的多级嵌套。

步骤三:定义验证规则

在数据结构准备好之后,需要定义验证规则,结合 Element-UI 的表单校验方法进行校验,验证规则也需要满足多级嵌套验证。例如:

rules: {
  name: [
    { required: true, message: '请输入名称', trigger: 'blur' }
  ],
  age: [
    { required: true, message: '请输入年龄', trigger: 'blur' }
  ],
  'job.title': [
    { required: true, message: '请输入职位', trigger: 'blur' }
  ],
  'job.salary': [
    { required: true, message: '请输入薪资', trigger: 'blur' }
  ]
}

上述示例中定义了四个属性的验证规则,其中job.titlejob.salary需要使用字符串引用以表明多级嵌套的层级关系。

步骤四:在表单中设置ref属性,用于在代码中引用表单

设置表单ref属性,可以在代码中直接引用表单实例进行表单校验。

<el-form ref="form" :model="formData" :rules="rules">
  <el-form-item label="名称" prop="name">
    <el-input v-model="formData.name"></el-input>
  </el-form-item>
  <el-form-item label="年龄" prop="age">
    <el-input v-model="formData.age"></el-input>
  </el-form-item>
  <el-form-item label="职位">
    <el-form-item label="职称" prop="job.title">
      <el-input v-model="formData.job.title"></el-input>
    </el-form-item>
    <el-form-item label="薪资" prop="job.salary">
      <el-input v-model="formData.job.salary"></el-input>
    </el-form-item>
  </el-form-item>
</el-form>

在el-form标签中,设置ref属性,并绑定数据模型formData和验证规则rules。

步骤五:在代码中使用表单校验方法

表单校验方法可以在表单实例中直接调用,例如:

this.$refs.form.validate((valid) => {
  if (valid) {
    alert('验证通过')
  } else {
    alert('表单校验失败')
    return false
  }
})

调用$refs.form.validate()方法即可进行表单验证,回调函数中的参数valid表示表单是否验证通过。

示例一

下面是一个验证手机号和邮箱的示例代码:

<el-form ref="form" :model="formData" :rules="rules">
  <el-form-item label="用户名" prop="username">
    <el-input v-model="formData.username"></el-input>
  </el-form-item>
  <el-form-item label="手机号" prop="phone">
    <el-input v-model="formData.phone"></el-input>
  </el-form-item>
  <el-form-item label="邮箱" prop="email">
    <el-input v-model="formData.email"></el-input>
  </el-form-item>
</el-form>
export default {
  data () {
    return {
      formData: {
        username: '',
        phone: '',
        email: '',
      },
      rules: {
        username: [
          { required: true, message: '请输入用户名', trigger: 'blur' }
        ],
        phone: [
          { required: true, message: '请输入手机号', trigger: 'blur' },
          { pattern: /^[1][3,4,5,7,8][0-9]{9}$/, message: '手机号格式不正确', trigger: 'blur' }
        ],
        email: [
          { required: true, message: '请输入邮箱', trigger: 'blur' },
          { type: 'email', message: '邮箱格式不正确', trigger: 'blur' }
        ]
      }
    }
  },
  methods: {
    submitForm() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          alert('验证通过')
        } else {
          alert('表单校验失败')
          return false
        }
      })
    }
  }
}

上述代码中,需要验证的数据结构包括usernamephoneemail三个属性,也就是单层验证。验证规则包括每个属性需要经过的验证过程。调用表单校验方法$refs.form.validate(),验证表单的填写规范并给出提示信息。

示例二

下面是一个深层次多级嵌套验证的示例代码:

<el-form ref="form" :model="formData" :rules="rules">
  <el-form-item label="工作信息">
    <el-form-item label="公司" prop="company">
      <el-input v-model="formData.company"></el-input>
    </el-form-item>
    <el-form-item label="地址">
      <el-form-item label="省份" prop="address.province">
        <el-input v-model="formData.address.province"></el-input>
      </el-form-item>
      <el-form-item label="城市" prop="address.city">
        <el-input v-model="formData.address.city"></el-input>
      </el-form-item>
      <el-form-item label="街道" prop="address.street">
        <el-input v-model="formData.address.street"></el-input>
      </el-form-item>
    </el-form-item>
  </el-form-item>
</el-form>
export default {
  data () {
    return {
      formData: {
        company: '',
        address: {
          province: '',
          city: '',
          street: '',
        }
      },
      rules: {
        company: [
          { required: true, message: '请输入公司名称', trigger: 'blur' }
        ],
        'address.province': [
          { required: true, message: '请输入省份', trigger: 'blur' }
        ],
        'address.city': [
          { required: true, message: '请输入城市', trigger: 'blur' }
        ],
        'address.street': [
          { required: true, message: '请输入街道', trigger: 'blur' }
        ]
      }
    }
  },
  methods: {
    submitForm() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          alert('验证通过')
        } else {
          alert('表单校验失败')
          return false
        }
      })
    }
  }
}

在这个多级嵌套示例中,验证数据结构包括companyaddress.provinceaddress.cityaddress.street四个属性,也就是深层次的嵌套验证。而验证规则也相应地进行了设置。在调用表单校验方法时,进行表单的验证并给出消息提示。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue element el-form 多级嵌套验证的实现示例 - Python技术站

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

相关文章

  • Asp定时执行操作 Asp定时读取数据库(网页定时操作详解)

    Asp定时执行操作和定时读取数据库操作是网站后端开发中常见的需求,可以实现定时更新数据、定时给用户发送提醒等功能。下面是详细的攻略。 Asp定时执行操作 在Asp中,可以使用Javascript的setInterval来实现定时执行操作。以下是一个示例代码: <script language="javascript"> fun…

    JavaScript 2023年6月11日
    00
  • JavaScript中的E-mail 地址格式验证

    对于JavaScript中的E-mail 地址格式验证,我们可以从以下几个方面进行讲解。 1. E-mail地址的合法性 一个合法的E-mail地址应当包含“@”符号,且“@”符号前后应当至少包含一个字符,并且“@”符号后应当包含一个“.”符号。另外,E-mail地址中不允许出现空格、制表符和换行符等空白符号。 在JavaScript中,我们可以使用正则表达…

    JavaScript 2023年5月19日
    00
  • javascript求日期差的方法

    当我们需要计算两个日期之间的差值时,可以使用JavaScript中内置的方法来帮助我们进行计算。下面是一些常用函数的示例说明。 方法1:使用getTime()方法求日期差 使用new Date()创建两个日期对象 通过调用getTime()方法获取两个日期对象的时间戳 用两个时间戳相减得到日期差 示例代码如下: let date1 = new Date(‘2…

    JavaScript 2023年5月27日
    00
  • 微信小程序实现数字滚动动画

    实现数字滚动动画需要用到小程序中的 animation 和 setData 方法,具体步骤如下: 1. 页面结构 在 wxml 文件中,需要准备一个数字占位符,以及一个用于显示数字的文本框。 <view class="number-placeholder">{{ number }}</view> <view …

    JavaScript 2023年6月11日
    00
  • JS Object构造函数之Object.freeze

    Object.freeze()是JavaScript中的一个内置方法,它会冻结一个对象,使对象成为不可修改的。一旦一个对象被冻结,任何的属性、值、方法等都将不能被修改、添加、删除或重新赋值。 使用Object.freeze()方法能有效地保护Javascript对象的数据,避免意外修改,从而提高代码的可维护性和安全性。 Object.freeze()方法的用…

    JavaScript 2023年5月28日
    00
  • javascript实现的柱状统计图表

    下面是关于“JavaScript实现的柱状统计图表”的完整攻略: 准备工作 在创建柱状统计图表前,需要引入jQuery(可选)和柱状图表所需数据以及样式文件。其中,jQuery主要用于操作DOM元素。 在引入样式文件时,可以根据自己的需求自行编写,也可以使用现成的CSS库,如Bootstrap。 HTML代码 考虑到柱状统计图表一般会显示在页面的某个容器内,…

    JavaScript 2023年6月10日
    00
  • 轻轻松松学习JavaScript

    轻轻松松学习JavaScript 一、前言 JavaScript是Web前端开发的核心技术之一,基本所有现代网站均使用JavaScript进行开发。因此,掌握JavaScript基础是学习Web前端开发的重要第一步。本篇攻略将介绍如何轻松入门学习JavaScript基础知识。 二、学习路线 1. 学习基础语法 学习JavaScript基础语法是入门的第一步。…

    JavaScript 2023年5月18日
    00
  • JavaScript检测是否开启了控制台(F12调试工具)

    要检测浏览器是否开启了控制台(F12调试工具),可以通过以下步骤实现: 首先,我们可以使用 window.console 属性检查控制台是否可用。如果控制台可用,则 window.console 属性会被定义,并且其类型为对象。因此我们可以使用以下 JavaScript 代码检查控制台是否可用: if (window.console && w…

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